2016-11-27 21 views
1

私はBDDから取り出したグラフ(chartType = Line)を描画しようとしています。縦軸には自分の場所と横軸に横軸があります。 他のルートと比較する時間(場所への通過時間)に応じてルート(場所)を描きたい。c#チャートwinformsを使ってグラフを描く

しかし、私は斧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]); 
     } 
+0

に文字列を追加するためのソリューション?そして、あなたは「斧Yに弦を当てることはできない」という意味です。 ?例外はありますか? –

+0

__Neither__ x値もy値も文字列でなければなりません!!文字列としてx値を追加すると、それらはすべてラベル0を除いて__lost__に設定されます。少なくともDataPointはすべて追加されています。しかし、y値を文字列として追加しても、y値が数値に変換できない限り、意味のあるグラフは全く作成できません。 - あなたが持っているものとあなたが望むものを最高のものにする! – TaW

+0

PR4には文字列とDHT時間があります –

答えて

0

デシベルでPR4とDHTを持っているどのようなタイプのY軸

for (int i = 0; i < dt.Rows.Count ; i++) 
      { 

       chart2.ChartAreas[0].AxisY.CustomLabels.Add(i, i + 1, label[i]); 
      } 
0

まず第一に、あなたの答えをありがとうございました。 お詫び申し上げます。私は誤解しています。

私は横座標または縦座標に文字列を置くことができないことを理解しました。私がY軸に置く解:整数とX軸:時: "hh:mm:ss"。 しかし、私はまだ解決すべき2つの問題があります。

最初のもの:Y座標は同じですが、X座標は異なっています(異なる時刻) 2つの曲線を表示すると、重ねて表示されます横座標の違いを作る。

第2の問題は、ラベルをY軸に配置する方法です。つまり、intを表示する代わりに文字列を表示しますか?

enter image description here

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 
     } 
関連する問題