c# - winform中的图表显示错误点

标签 c# winforms forms charts mschart

我有以下代码。 我已经对 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++;
                }
            }

enter image description here

更新:

需要添加此行,仅适用于.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/

相关文章:

c# - 如何将自定义函数转换为 Entity Framework Core 3.1 的 sql 表达式

c# - FileDialog DoubleClick行为

javascript - 提交表单时等待消息

php - 无需刷新页面即可将下拉菜单中的数据提交到mysql

c# - 是否有将当前类型和成员复制到剪贴板的 Visual Studio 或 Resharper 快捷方式?

c# - 无法在 C# 代码中访问我的 UI 控件。怎么了?

c# - 在 winforms 中,我可以将其中包含一堆控件(如列表框)的控件拖到另一个控件中并从那里调整大小/移动它们吗?

c# - 错误地定义自定义类型?

javascript - 根据输入值重定向到页面

c# - 在 C# 中使用结构来获取简单的域值