winform chart控件折线图

在winform里用chart画折线图时,需求要求有空值,比如X轴有500Hz,750Hz,1000Hz,2000Hz这几个点,Y轴对应的值是20,空值,25,25这几个值。由于第二个点是空值,造成折线图不是连续的。怎么设置当第二个点为空时,第1个和第三个点直接连起来,成为连续的折线图

遍历数据源补全值为空的列值为前一行和后一行的值相加/2就行了。代码如下

img

using System;
using System.Windows.Forms;
using System.Data;
namespace WindowsFormsApp2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            var dt = new DataTable();
            dt.Columns.Add("x");
            dt.Columns.Add("y");

            dt.Rows.Add("500Hz", "20");
            dt.Rows.Add("750Hz", "");
            dt.Rows.Add("1000Hz", "25");
            dt.Rows.Add("2000Hz", "25");

            for (int i = 1, j = dt.Rows.Count - 1; i < j; i++)
            {
                if (dt.Rows[i][1].ToString() == "")
                {
                    dt.Rows[i][1] = (double.Parse(dt.Rows[i-1][1].ToString())+ double.Parse(dt.Rows[i +1][1].ToString()))/2;
                }
            }

            chart1.DataSource = dt;
            chart1.Series[0].XValueMember = "x";
            chart1.Series[0].YValueMembers = "y";
        }
    }
}

img


有帮助或启发麻烦点下【采纳该答案】,谢谢~~