我使用 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);
最佳答案
这可以通过告诉 Chart
,或者更确切地说 Series
,您想要使用 X-Values
来解决(即作为数字)但不是用于放置 DataPoints
。
以下是您必须添加的内容:
series.IsXValueIndexed = true;
这意味着您仍然可以格式化它们或以其他方式使用它们,例如计算,但放置是严格排列的 好像它们的值是索引 0,1,2... 或好像您将它们添加为字符串,导致 x 值实际上全部为 0,就像许多新手所做的那样。
现在你的图表看起来像这样(在这里):
如前所述您看到的差距不是由空点造成的。要创建一个 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);
订购了一个空
点
关于c# - 微软图表 Winforms。如何去除空白点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36979940/