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和背部).这似乎更像是一种解决方法而不是解决方案.
| 归档时间: |
|
| 查看次数: |
1057 次 |
| 最近记录: |