c# - 微软图表 Winforms。如何去除空白点?

标签 c# winforms mschart

我使用 MSChart 控件创建蜡烛图(命名空间 System.Windows.Forms.DataVisualization.Charting)。我周五加了两点,周一加了两点。共四点。

结果,我看到四个烛台和它们之间的许多空白点。如何删除它?

谢谢。

var area = chart1.ChartAreas.Add("area1");                
area.AxisX.LabelStyle.Format = "yyyy.MM.dd HH:mm";

var series = new Series("prices", 4);

series.ChartArea = "area1";
series.ChartType = SeriesChartType.Candlestick;
series.XValueType = ChartValueType.DateTime;
series["OpenCloseStyle"] = "Triangle";
series["ShowOpenClose"] = "Both";
series["PointWidth"] = "0.6";
series["PriceUpColor"] = "Green";
series["PriceDownColor"] = "Red";

series.Points.AddXY(new DateTime(2016, 4, 25, 12, 0, 0), 2, 0.5, 0.7, 1.8);
series.Points.AddXY(new DateTime(2016, 4, 25, 11, 0, 0), 2, 0.5, 0.7, 1.8);
series.Points.AddXY(new DateTime(2016, 4, 22, 12, 0, 0), 2, 0.5, 0.7, 1.8);
series.Points.AddXY(new DateTime(2016, 4, 22, 11, 0, 0), 2, 0.5, 0.7, 1.8);                

this.chart1.Series.Add(series);

enter image description here

最佳答案

这可以通过告诉 Chart,或者更确切地说 Series,您想要使用 X-Values 来解决(即作为数字)但不是用于放置 DataPoints

以下是您必须添加的内容:

  series.IsXValueIndexed = true;

这意味着您仍然可以格式化它们或以其他方式使用它们,例如计算,但放置是严格排列的 好像它们的值是索引 0,1,2... 或好像您将它们添加为字符串,导致 x 值实际上全部为 0,就像许多新手所做的那样。

现在你的图表看起来像这样(在这里):

enter image description here

如前所述您看到的差距不是由空点造成的。要创建一个 Empty DataPoint,您可以这样做:

series.Points[2].IsEmpty = true;

并告诉系列如何对待他们:

series.EmptyPointStyle.Color = Color.Transparent;
series.EmptyPointStyle.AxisLabel = " ";

注意 您添加的数据点未按日期排序。因此它们现在显得无序。解决它的最佳方法是在添加它们之前订购它们。

如果你不能这样做,你可以像这样对它们进行排序:

var sorted = series.Points.OrderBy(x => x.XValue).ToList();  // a sorted copy
series.Points.Clear();
foreach (DataPoint dp in sorted) series.Points.Add(dp);

enter image description here

订购了一个

关于c# - 微软图表 Winforms。如何去除空白点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36979940/

相关文章:

C# MSChart - 图表区域限制

c# - 启用 x 轴滚动以进行图表控制

c# - 判断当前应用是否激活(有焦点)

c# - 在实时图表中设置轴的最小值

c# - 动态确定应用程序是基于 Winform 还是基于 ASP.NET

Windows 窗体应用程序作为计划任务

c# - WinForm 中的 OpenID?

c# - 无法使用 oData 查询选项

c# - 为什么这个简单的 F# 代码比 C#/C++ 版本慢 36 倍?

.net-4.0 - 微软图表堆积柱形图有差距