おはようございます!
C# で作成された Windows フォーム プログラムでグラフ オブジェクトを処理することができました。ここで問題が発生しました。チャートに表示される YAxis スケールを制御したいのです。使用時間のグラフを作成する必要があり、hh:mm:ss の形式で YAxis スケールを表現したいと考えています。それは可能ですか?どうすればこれを達成できますか?
よろしくお願いします!
編集1 :これは、チャートを作成するコードです:
for (m = 0; m < mySeriesValues.Length; m++)
{
for (i = myFields.Count + 1; i < myAux.Columns.Count; i++)
{
Series mySerie = new Series();
CustomLabel myItemLabel = new CustomLabel();
mySerie.Name = mySeriesValues[m] + " - " + myAux.Columns[i].ColumnName;
mySerie.XValueMember = myAux.Columns[0].ColumnName;
mySerie.YValueMembers = myAux.Columns[i].ColumnName;
for (j = 0; j < myAux.Rows.Count; j++)
{
nameValue = "";
for (n = 1; n < myFields.Count + 1; n++)
{
if (n == 1) { nameValue += myAux.Rows[j][n].ToString(); }
else { nameValue += " - " + myAux.Rows[j][n].ToString(); }
}
if (mySeriesValues[m].Equals(nameValue))
{
auxStringValue = myAux.Rows[j][i].ToString();
auxValue = Convert.ToDecimal(myAux.Rows[j][i].ToString());
resultTime = TimeSpan.FromSeconds((double)auxValue);
myLabel = String.Format("{0:D2}h:{1:D2}m:{2:D2}s", resultTime.Hours, resultTime.Minutes, resultTime.Seconds);
myItemLabel.Text = myLabel;
mySerie.Points.Add((double)auxValue).Label = myLabel;
this.chartReport.ChartAreas[0].AxisY.LabelStyle.Tag = myLabel;
}
}
this.chartReport.Series.Add(mySerie);
this.chartReport.Series[m]["PointWidth"] = "1";
}
}
EDIT 2:必要なものをほとんど手に入れました。私はこの文を使いました:
this.chartReport.ChartAreas[0].AxisY.LabelStyle.Format = String.Format("{0:D2}h:{1:D2}m:{2:D2}s", resultTime.Hours, resultTime.Minutes, resultTime.Seconds);
ただし、それは私の秒の値に対するマスクであるため、500000 秒がある場合、それらは 50:00:00 に変換され、秒を時間/分/秒に変換する必要がありますが、できます。 YAxis スケールの値を取得します...
よろしくお願いします!!!