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

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

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

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

1回答

6188閲覧

C#のchartコントロールで、X軸Y軸の原点を左上にしたい

mino16g

総合スコア13

C#

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2018/12/20 01:56

編集2018/12/20 02:44

前提・実現したいこと

Visual Studio 2017でC#を使い、chartコントロールにてグラフの軸のカスタマイズをしたいです。
下図のように、X軸Y軸の原点を左上に設定したいのですが、やり方がわかりません。
ちなみに、ポイントタイプのグラフを作成しております。
自分で調べいじってみたもののどうしてもわからなかったので、ご質問させて頂きます。
イメージ説明

ネットで調べた情報を元に、グラフを描画するところまではできました。
コードを書いているためなのか、UIの方で編集しても実際には反映されていません。
ので、できればコードでの設定方法を教えて頂けると助かります。

C#

1 // フォームをロードするときの処理 2 chart1.Series.Clear(); 3 chart1.ChartAreas.Clear(); 4 5 // ChartにChartAreaを追加 6 string chart_area1 = "area1"; 7 chart1.ChartAreas.Add(new ChartArea(chart_area1)); 8 // ChartにSeriesを追加 9 string legend1 = "Graph1"; 10 chart1.Series.Add(legend1); 11 // グラフの種別を指定 12 chart1.Series[legend1].ChartType = SeriesChartType.Point; // ポイントグラフを指定 13 chart1.Series[legend1].MarkerSize = 4; // マークサイズを指定 14 chart1.Series[legend1].MarkerStyle = MarkerStyle.Circle; // マークスタイル(形状)を指定 15 chart1.Series[legend1].MarkerColor = Color.FromArgb(50, 100, 200); //マークカラーを指定 16 17 //軸ラベルの設定 18 chart1.ChartAreas["area1"].AxisX.Title = "X軸"; 19 chart1.ChartAreas["area1"].AxisY.Title = "Y軸"; 20 21 //X軸最小値、最大値、目盛間隔の設定 22 chart1.ChartAreas["area1"].AxisX.Minimum = 0; 23 chart1.ChartAreas["area1"].AxisX.Maximum = 30; 24 chart1.ChartAreas["area1"].AxisX.Interval = 5; 25 26 //Y軸最小値、最大値、目盛間隔の設定 27 chart1.ChartAreas["area1"].AxisY.Minimum = 0; 28 chart1.ChartAreas["area1"].AxisY.Maximum = 200; 29 chart1.ChartAreas["area1"].AxisY.Interval = 10; 30 31 //目盛線の消去 32 chart1.ChartAreas["area1"].AxisX.MajorGrid.Enabled = false; 33 chart1.ChartAreas["area1"].AxisY.MajorGrid.Enabled = false; 34 35 for (int i = 0; i < csv.Count; i++) 36 { 37 DataPoint dp = new DataPoint((float)csv[i][1], csv[i][0]); 38 chart1.Series[legend1].Points.Add(dp); 39 } 40 }

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2018/12/20 02:12 編集

丁寧に教えて欲しいなら「初心者です」の一言で済ませるのでなく自分がどこまでできるのかを丁寧に説明するのが早いです。 こちらにはどこまでの初心者かわからないのでごく基本的なことから説明するのですが、そうすると自分の知っていることを説明したと怒る人が多いのです。 繰り返しになりますが、知っているかいないかなどこちらにはわかりません。初心者はピンキリです。 自分を基準に言うと、使ったことのない言語でもこのくらいは簡単に調べられると思いますが、初心者がみんながそうできるとは限りません。
mino16g

2018/12/20 02:34

説明不足で申し訳ございません。的確なご意見ありがとうございます。 もう少し詳細に説明させて頂きますので、よろしくお願いいたします。
guest

回答1

0

ベストアンサー

ChartArea→Axis→Y (Value) Axis→IsReversedをtrueでどうでしょう?

イメージ説明


追記:
コードで書くならchart1.ChartAreas["area1"].AxisY.IsReversed = true;で。

投稿2018/12/20 02:30

編集2018/12/20 02:56
takabosoft

総合スコア8356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mino16g

2018/12/20 04:24

無事解決できました。 ご丁寧にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問