
いつも皆さんに教えていただきながらグラフを作成しています。
前回時間軸の表示方法でお世話になりました。
今回はY軸の目盛り間隔の変え方について教えてください。
visualstudioのフォームアプリで作成しています。
c#
1コードusing System; 2using System.Collections.Generic; 3using System.Drawing; 4using System.Text; 5using System.Windows.Forms; 6using System.IO; 7using System.Drawing.Imaging; 8using System.Windows.Forms.DataVisualization.Charting; 9 10namespace グラフ 11{ 12 public partial class Form1 : Form 13 { 14 public Form1() 15 { 16 InitializeComponent(); 17 } 18 19 20 21 private void button1_Click(object sender, EventArgs e) 22 { 23 24 List<string> list = new List<string>(); 25 26 //textファイル読み込み 27 StreamReader sr = new StreamReader("ファイル名", Encoding.Default); 28 while (sr.Peek() >= 0) 29 { 30 string line = ""; 31 32 while ((line = sr.ReadLine()) != null) 33 { 34 list.Add(line); 35 } 36 } 37 sr.Close(); 38 sr.Dispose(); 39 40 41 chart1.Series.Clear(); 42 chart1.Legends.Clear(); 43 chart1.ChartAreas.Clear(); 44 chart1.Hide(); 45 46 chart1.ChartAreas.Add(new ChartArea("1")); 47 48 49 50 // Seriesの作成 51 Series series1 = new Series(); 52 series1.ChartArea = "1"; 53 series1.ChartType = SeriesChartType.Line; 54 55 56 chart1.ChartAreas[0].AxisX.Minimum = DateTime.MinValue.AddHours(8).ToOADate(); 57 chart1.ChartAreas[0].AxisX.Maximum = DateTime.MinValue.AddHours(17).ToOADate(); 58 chart1.ChartAreas[0].AxisX.Interval = 1; 59 chart1.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Hours; 60 chart1.ChartAreas[0].AxisX.IntervalOffsetType = DateTimeIntervalType.Hours; 61 chart1.ChartAreas[0].AxisX.LabelStyle.Format = "HH:mm:ss"; 62 63 chart1.ChartAreas[0].AxisY.Maximum = 3; 64 chart1.ChartAreas[0].AxisY.Minimum = 1; 65 66 chart1.Series.Add(series1); 67 chart1.Series[0].ChartType = SeriesChartType.Line; 68 chart1.Series[0].XValueType = ChartValueType.Time; 69 chart1.Series[0].IsVisibleInLegend = false; 70 chart1.Series[0].IsValueShownAsLabel = false; 71 72 foreach (var line in list) 73 { 74 75 var xValue = DateTime.Parse("0001/01/01 " + " "+line.Split('\t')[0]); 76 var yValue = line.Split('\t')[1]; 77 var dp = new DataPoint(); 78 dp.SetValueXY(xValue, yValue); 79 dp.IsValueShownAsLabel = false; 80 chart1.Series[0].Points.Add(dp); 81 } 82 } 83 } 84}
現在Y軸の値を最低が1、最高が3で設定しているのですが、間のラベルを1.2, 2, 2.7と自分の指定した形にしたいのですが、customRavelの使い方がわからず思うように表示する事ができません。
もしかしたらcustomRavelを使うという考え方も間違えてるのかもしれませんが、やり方を教えていただけないでしょうか。
よろしくお願いします。

サンプルをくまなく探したが希望するものが見つからなかったと言ってますか? (そうだと言われると自分の知識の及ぶ話ではなさそうなので聞いてます)
自分の探しかたが悪いのか、具体的なサンプルが書いてあるサイトを見つけられず、DOCS等で概要などを読んだのですが理解ができなかった次第です。

サンプルというのは先の質問者さんのスレッド https://teratail.com/questions/230445 の私の回答の画像にあるものですが、認識は合っているでしょうか?
前回この画像をいただいた時は、他の質問者様のところに提示してくださってるアドレスでサンプル取得のサイトも見に行ってサンプル取得を試みたのですが、どれをダウンロードしたらよいかわからず諦めてしまい、その結果、いただいた画像のコードからなんとか答えが導き出せないかと試行錯誤していました。
なので、こちらのサンプルの取得方法がわかっていません。申し訳ありません。

ダウンロードサイトから何を入手すればよいかとインストール方法は以下の記事を見てください。
Chart Samples
http://surferonwww.info/BlogEngine/post/2016/02/14/chart-samples.aspx
・・・と思ったら、ダウンロードサイトがいつの間にかリンク切れになってました。残念ながら質問者さんがダウンロードサイトを訪れた時ダウンロードしてなければサンプルを入手する手段はなさそうです。
もしその時ダウンロードだけはしていたなら、上記の記事を参考にインストールしてみてください。
1.2, 2, 2.7と間隔の例を提示していますが、等間隔ではないのでしょうか。
> ラベル間隔
> Y軸の目盛り間隔
ラベル間隔という表現がいまいちわかりません。と思いきや、Y軸の目盛り間隔と書いてあるので、余計わかりませんでした。グリッド線の間隔を指定したいということでしょうか。
遅くなり申し訳ありません。
y軸のグリッド線及びラベルを等間隔ではなく上記の間隔で配置したいということです。
よろしくおねがいします。

回答3件
あなたの回答
tips
プレビュー