C#用图表Winforms绘制图形



我尝试绘制我从bdd中检索的图形(ChartType = line),在我自己的位置和小时的横坐标上。我想根据时间(通过到该地点的时间)与其他路线进行绘制路线(地点)。

,但我不能将字符串放在斧头上。

Const string DB_CONN_STR = "SERVER=127.0.0.1; DATABASE=test7100; UID=root; PASSWORD=";
        MySqlConnection cn = new MySqlConnection(DB_CONN_STR);
        DataSet ds = new DataSet();
        DataTable dt = new DataTable();
        string sqlCmd = "SELECT  `PR4`, `DHT`, `DHR` FROM `table 4` WHERE 1";
            // PR4= place et DHT= time
            MySqlDataAdapter adr = new MySqlDataAdapter(sqlCmd, cn);
            adr.SelectCommand.CommandType = CommandType.Text;
            adr.Fill(dt);

        string[] x = new string[dt.Rows.Count];
        string[] y = new string[dt.Rows.Count];
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            y[i] = dt.Rows[i][0].ToString();
            x[i] = dt.Rows[i][1].ToString();
        }
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            grapheSillon.Series[0].Points.AddXY(x[i], y[i]);
        }

首先,谢谢您的回答。我很抱歉,我有拼写错误。

我知道我无法将琴弦放在横坐标或纵标上。我放入Y轴的解决方案:整数和X轴:格式的小时:" HH:MM:SS"。但是我还有两个问题要解决。

第一个:我必须显示两个在y中具有相同坐标的曲线,但在x中是不同的(不同的时间)当我显示两条曲线时,它是叠加的,我只会得到一条曲线,它不会使Abscissa坐标有所不同。

第二个问题是如何将标签放在y轴上,即而不是显示int,我显示字符串?

在此处输入图像描述

 Const string DB_CONN_STR = "SERVER=127.0.0.1; DATABASE=test7100; UID=root; PASSWORD=";
        MySqlConnection cn = new MySqlConnection(DB_CONN_STR);
        DataSet ds = new DataSet();
        DataTable dt = new DataTable();
        string sqlCmd = "SELECT  `PR4`, `DHT`, `DHR` FROM `table 4` WHERE 1";
            // PR4= place et DHT= time
            MySqlDataAdapter adr = new MySqlDataAdapter(sqlCmd, cn);
            adr.SelectCommand.CommandType = CommandType.Text;
            adr.Fill(dt);

        string[] x = new string[dt.Rows.Count];
        string[] y = new string[dt.Rows.Count];
        string[] z= new string[dt.Rows.Count]

        for (int i = 0; i < dt.Rows.Count; i++)
        {
            y[i] = dt.Rows[i][0].ToString(); // place
            x[i] = dt.Rows[i][1].ToString(); //  theoretical hour format : "hh:mm:ss"
            z[i] = dt.Rows[i][1].ToString(); //  real hour format : "hh:mm:ss" 
        }
int j= dt.rows.count //j=33
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            grapheSillon.Series["théorique"].Points.AddXY(x[i], j);
            grapheSillon.Series["réel"].Points.AddXY(z[i], j);
            j=j-1
        }

在y轴上添加字符串的解决方案

  for (int i = 0; i < dt.Rows.Count ; i++)
            {
                chart2.ChartAreas[0].AxisY.CustomLabels.Add(i, i + 1, label[i]);
            }

最新更新