繁体   English   中英

c#绘制图表winforms图表

[英]c# Draw a graph with chart winforms

我尝试绘制一个从BDD检索的图形(chartType = Line),在纵坐标上我自己的位置和小时的横坐标。 我想根据时间(到达地方的时间)绘制路线(地点)以与其他路线进行比较。

但我不能把字符串放在斧头Y上。

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中它是不同的(不同时间)当我显示我的两条曲线时,它是叠加的,我得到的只有一条曲线它没有区别于横坐标。

第二个问题是如何在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]);
            }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM