我有以下代码。 我已经对 x 和 y 值进行了硬编码以进行测试。 由于某种原因,它绘制了点 (0,-0.5) (1,-0.5) 对于我的生活,我不知道发生了什么,因为如果您尝试其他值,那么图表将正确显示。
foreach (var grp in q)
{
point = new DataPoint();
Sum1 = grp.Sum1 > 2 ? 2 : grp.Sum1;
Sum1 = Sum1 < -2 ? -2 : Sum1;
Sum2 = grp.Sum2 > 2 ? 2 : grp.Sum2;
Sum2 = Sum2 < -2 ? -2 : Sum2;
point.XValue = 0;
point.YValues = new double[] { -0.5 };
chart1.Series.Add(grp.Id.ToString());
chart1.Series[grp.Id.ToString()].ChartType = SeriesChartType.Point;
chart1.Series[grp.Id.ToString()].Label = grp.Id.ToString();
chart1.Series[grp.Id.ToString()].Points.Add(point);
chart1.Series[grp.Id.ToString()].ToolTip = "THEMES = " + Sum1 + "\n PRICES = " + Sum2;
chart1.Series[grp.Id.ToString()].LabelToolTip = "THEMES = " + Sum1 + "\n PRICES = " + Sum2;
chart1.Series[grp.Id.ToString()].MarkerSize = 11;
chart1.Update();
if (grp.Id.ToString() == "WW" || grp.Id.ToString() == "PB"
|| grp.Id.ToString() == "AJ" || grp.Id.ToString() == "AK")
{
avgTheme += (float)Sum1;
avgPrice += (float)Sum2;
count++;
}
}
更新:
需要添加此行,仅适用于.NET 4.5
chart1.Series["ABC"].CustomProperties = "IsXAxisQuantitative=True";
最佳答案
这实在是太奇怪了!看起来是一个很难相信的错误。我尝试了一下,但只能确认似乎没有办法将单个 Point
设置为 Series
中的位置 0。
这是一个愚蠢的解决方法:
S1.ChartType = SeriesChartType.Point;
for (int i=0; i < 2; i++)
{
DataPoint point = new DataPoint();
point.SetValueXY(i, -0.5);
if (i > 0) point.Color = Color.Transparent;
S1.Points.Add(point);
}
我希望我知道这是关于什么的 - 图表
记录得很差,可能仍然有一些疯狂的系统..
更新:当您添加一个Timer
并让它的Tick
删除透明的第二个Point
时,您可以看到第一个 Point
从 0 跳到 1。太奇怪了..
关于c# - winform中的图表显示错误点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26867376/