首页 > 解决方案 > 如何在 winform 上的图表中添加点?

问题描述

我解决了一个模糊建模的问题。

我需要在原始数据上建立一个图表。从 .txt 文件中,我读取了这些值。

图表是这样构建的:

列表中的最小值是 + = 步长所在的步长(最大值减去最小值)/2/2,因为我有 5 个图表。

也就是说,我有3, 3.101, 3.12, 3.15, 3.2, 3.4, 3.45

如果我们说要使用 5 个元素,那么 3.2 就是最大值。我建立在一点上:最小值+ =步!= 最大值。现在如何反映来自数组的点?

(我用谷歌翻译。)

List<double> lsDouble;
step = ((lsDouble[kount - 1] - lsDouble[0]) / 2) /2;
double sumX;

for(int i=0; i<kount;i++)
    {
        sumX = lsDouble[0];
        chart1.Series[i].BorderWidth = 6;
        for (int j = 0; j<kount;j++)
        {
           if (i == j)  valY = 1;
           else valY = 0;

           chart1.Series[i].Points.AddXY(sumX, valY);
           sumX += step;
        }
    }

我有:

在此处输入图像描述

我需要得到:

此图表上带有垂直线的点

代码:

switch (kount)
                {
                    case 2:
                        step = (lsDouble[kount - 1] - lsDouble[0]);
                        break;
                    case 3:
                        step = (lsDouble[kount - 1] - lsDouble[0]) / 2;
                        break;
                    case 5:
                        step = ((lsDouble[kount - 1] - lsDouble[0]) / 2) /2;
                        break;

                }


                double sumX;

                for(int i=0; i<kount;i++)
                {
                    sumX = lsDouble[0];
                    chart1.Series[i].BorderWidth = 6;
                    for (int j = 0; j<kount;j++)
                    {
                        if (i == j)
                            valY = 1;
                        else valY = 0;

                        chart1.Series[i].Points.AddXY(sumX, valY);
                        sumX += step;
                        //if(sumX==lsDouble[kount-1])
                        //    chart1.Series[i].Points.AddXY(sumX, valY);
                    }
                }

标签: c#.netwinformsmathmschart

解决方案


推荐阅读