質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

解決済

C# チャートのx軸ラベルを任意の間隔で設定したい

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

3回答

0評価

0クリップ

8586閲覧

投稿2020/09/25 10:59

編集2020/09/27 01:24

C#のチャート(Windows Forms用のChart)を使って、折れ線グラフを作成しています。
Datagridviewの数値を折れ線グラフに表示させるプログラムですが、
下記のサイトの2つ目の画像のように、X軸の目盛を0,2000,4000のように、等間隔にしたいのですが、任意の値を設定する方法する方法がわかりません。
https://stackoverrun.com/ja/q/5398138
(※上記のURLの記事はASP.NET 用の Chart)

Datagridviewの数値は、下記の通りです。
x(Cells[0]), y(Cells[1])
532, 8
891, 13
1241, 9
1875, 5
2134, 16
3242, 2
3923, 6
4745, 4
…のように、xの数値が16000まで続いています。

ちなみに、ソフトはVisual Studio 2019です。

private void button1_Click(object sender, EventArgs e) //ボタンを押すと、グラフ表示 { Chart(); } public void Chart() //グラフ表示 {   ChartArea area = new ChartArea("area1"); Title title = new Title("title1"); title.DockedToChartArea = "area1"; area.Name = "グラフテスト"; Series series1 = new Series(); chart1.Series.Clear(); series1.ChartType = SeriesChartType.Line; //折れ線 //グラフのデータを追加 for (int row = 0; row > dataGridView1.RowCount; row++) { series1.Points.AddXY(dataGridView1.Rows[row].Cells[0].Value,dataGridView1.Rows[row].Cells[1].Value); } //X軸目盛り設定 chart1.ChartAreas["ChartArea1"].AxisX.IsMarginVisible = true; chart1.ChartAreas["ChartArea1"].AxisX.Interval = 2000; chart1.ChartAreas["ChartArea1"].AxisX.Maximum = 16000; chart1.ChartAreas["ChartArea1"].AxisX.Minimum = 0; //Y軸目盛り設定 chart1.ChartAreas["ChartArea1"].AxisY.Minimum = 0; chart1.ChartAreas["ChartArea1"].AxisY.Maximum = 50; chart1.ChartAreas["ChartArea1"].AxisY.Interval = 10; //目盛線 chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.Enabled = false; chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.Enabled = true; chart1.Series.Add(series1); }

プログラムは、一部抜粋しましたが、上記のように設定しました。
実際に「button1」ボタンを押すと、X軸の目盛が勝手に変わって、Datagridviewの値が表示されています。

理想としては、x軸の起点を0と表示し、それ以降は2000毎に目盛りと線を2000,4000・・・,16000と表示したいと思っています。

何か良い方法はありますでしょうか?
質問の方法が変かと思いますが、よろしくお願いいたします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

SurferOnWww

2020/09/25 23:31

url の文字列を記載するだけでなくリンクを張ってください。 「Datagridviewの数値」とは何でしょう?
退会済みユーザー

退会済みユーザー

2020/09/26 02:30

説明不足ですみません。 Datagridviewの数値は、下記の通りです。画像貼り付けたかったのですが、貼り付けることができなかったです…。 x, y 532, 8 891, 13 1241, 9 1875, 5 2134, 16 3242, 2 3923, 6 4745, 4 …のように、xの数値が16000まで続いています。
SurferOnWww

2020/09/26 04:10

url の文字列を記載するだけでなくリンクを張ってください。
SurferOnWww

2020/09/26 04:58

上記は質問欄を編集して追記・修正願います。コメント欄は「質問への追記・修正の依頼」のための場所です。コメント欄は初期表示では開いてないし、ここに書いても見ない人もいますから。
SurferOnWww

2020/09/26 05:12

参考にしている記事は ASP.NET 用の Chart ですが、であれば、そのことも質問欄を編集して追記してください。
SurferOnWww

2020/09/26 05:56

Chart には Windows Forms 用と ASP.NET Web Forms 用の 2 種類あるのはご存じですか? > C#のチャート(ASP.NET用のChart)を使って、散布図グラフを作成しています。 質問に DataGridView とあるので Windows Forms アプリを作っていると思っていましたが、参考にしている記事は ASP.NET Web Forms 用の Chart の話で、一体どっちなのか分からなかったので上のコメントで聞いたつもりだったのですが。
退会済みユーザー

退会済みユーザー

2020/09/26 06:06

すみません、誤記です。指摘ありがとうございます。
SurferOnWww

2020/09/26 07:31

Windows Forms 用の Chart サンプルに Setting Axis Labels Interval というものがありましたので回答欄で紹介します。すでにご存じで、回答にはなってないかもしれませんが、回答欄でないと画像は貼れないのでご容赦ください。
YAmaGNZ

2020/09/26 08:23

実際にChartにデータをセットしている部分などグラフを構築している部分のソースは提示できませんか?
SurferOnWww

2020/09/27 01:18

> 実際にボタンを押すと、X軸の目盛が勝手に変わって、Datagridviewの値が表示されています。 「X軸の目盛が勝手に変わって」という問題が起こる「実際にボタンを押す」の部分のコードはどうなっているのですか?
退会済みユーザー

退会済みユーザー

2020/09/27 01:25

指摘ありがとうございます。
SurferOnWww

2020/09/27 01:52 編集

TN8001 さんの回答のコードと基本的には同じに見えますが、違いを確認してみましたか? ざっと見ですが、質問者さんは button1_Click で表示、TN8001 さんの回答のコードは Form のコンストラクタで表示というところが違うだけのように見えます。 それで結果が違うとすると、質問に書いてない何かが違うということと思われます。質問に書いてないことは質問者さんにしか分からないので、自分でよく見比べて調べていただくという話になると思うのですが。
退会済みユーザー

退会済みユーザー

2020/09/27 02:02

すみません。解決しました。初心者で、説明不足などいろいろご迷惑をおかけしてしまい大変申し訳ございませんでした。
SurferOnWww

2020/09/27 02:07

> 解決しました。 どのように解決したのかを書いてこのスレッドはクローズしてください。 https://teratail.com/help/question-tips に書いてありますように、Teratail は「質問と回答を通してお互いに知識や情報を交換・共有する場所」ということです。なので、質問者さんにもどのように解決したかの情報提供が求められます。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。