直方图/柱形图未显示一直到底部的条形图

mma*_*his 7 c# charts histogram

我正在尝试使用C#.NET Chart控件(System.Windows.Forms.DataVisualization.Charting)绘制直方图.

我把它设置为柱形图.使用NMath库通过Histogram对象检索数据,因此它会对所有分类进行分类.在将y轴切换到对数刻度之前,一切看起来都很好.为了让事情显而易见,我将任意bin的DataPoint设置为0条目,使得y值为0.001而不是0.然后将y轴的最小值设置为0.1,将max设置为超出最大bin的值.结果是所有列都以y值1开始而不是最小值.任何具有0个条目的bin都有一个向下延伸的列(朝向0.001).这里有截图

设置轴上的最小/最大/间隔的代码如下.

double ymin = FindMinimumYValue();
double mag = Math.Floor(Math.Log10(ymin));
ymin = Math.Pow(10, mag);
yAxis.Minimum = ymin;
double ymax = FindMaximumYValue();
mag = Math.Ceiling(Math.Log10(ymax));
ymax = Math.Pow(10, mag);
yAxis.Maximum = ymax;

yAxis.Interval = 1;
yAxis.MajorGrid.Interval = 1;
yAxis.MajorTickMark.Interval = 1;
yAxis.MinorGrid.Interval = 1;
yAxis.MinorTickMark.Interval = 1;
Run Code Online (Sandbox Code Playgroud)

我可能没有在我需要的轴上设置属性,但是有没有办法让列从y轴上的最小值向上延伸,即使该最小值小于1?

ETA:如果我从系列中删除了0个计数的DataPoints,我不再得到0.1和1之间的向下条.但是,所有其他条仍然从1开始向上,而不是从最小值开始.

ETA:我想我可以使用RangeColumn类型的图表,并指定每个bin的min和max y值.这似乎不是很优雅,因为当用户将轴切换到log模式并返回时,我需要在RangeColumn和Column类型之间切换,或者继续调整RangeColumn数据点的最小y值(从0到0.1和背部).这似乎更像是一种解决方法而不是解决方案.

mma*_*his 0

我最终将其更改为一种RangeColumn图表,然后根据需要设置范围的最小值和最大值。