小编mma*_*his的帖子

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

我正在尝试使用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和背部).这似乎更像是一种解决方法而不是解决方案.

c# charts histogram

7
推荐指数
1
解决办法
1057
查看次数

XML使用新属性序列化类,该属性隐藏继承的成员

我有以下抽象类的结构:

public abstract class Template
{
   // Some properties and methods defined
}

public abstract class Template<TTemplate> : Template where TTemplate : Template
{
 // No new properties defined, but methods overriden
}
Run Code Online (Sandbox Code Playgroud)

然后,我将这些模板类用作模型的一部分:

public abstract class Model 
{
  public Template Template {get;set;}
  public Model(Template t) {Template = t;}
  // More properties and methods
}

public abstract class Model<TModel, TTemplate> : Model where TModel : Model where TTemplate : Template
{
  public new TTemplate template {get {return (TTemplate)base.Template;} set {base.Template …
Run Code Online (Sandbox Code Playgroud)

c# xml inheritance

5
推荐指数
1
解决办法
1620
查看次数

标签 统计

c# ×2

charts ×1

histogram ×1

inheritance ×1

xml ×1