图表中的winform显示错点(Chart in winform displaying wrong

2019-10-21 06:16发布

我有下面的代码。 我已经硬编码了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";

Answer 1:

这真是奇怪! 貌似很难相信错误。 我打左右,但只能确认有似乎没有办法设置一个Point在a到位置0 Series

这是一个愚蠢的解决方法:

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);
}

我希望我能知道这是怎么回事- Chart病得很重,记录有可能仍然有一些系统的疯狂..

更新:当您添加一个Timer ,并让其Tick除去透明第二Point ,你可以看到第一个是如何Point从0到1,这样怪异的跳跃..



Answer 2:

嗯哼....

这是不是一个错误。 这是图的SERIESCHARTTYPE.POINT正确的行为。

图表的目的是显示一个并[b]系列[/ B]值{从左到右},而不是一组X,Y点的。

系列值1 4系列值2 1个系列值3 6等。

因此,错误不在图表,但在了解什么图表类型设计并打算用于。

你可以在这里看到阵列中的每个元素只使用该点的y值。

难道说你要绘制一些点? 也许你感到困惑与图形 图表 ? 如果你想图点,这可能帮助: https://www.daniweb.com/software-development/csharp/code/217204/function-plotting-in-c



文章来源: Chart in winform displaying wrong Point