[英]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.