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

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

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

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

Q&A

解決済

1回答

1161閲覧

チャートコントロールを使ったグラフのデザインについて

pro-poke5

総合スコア46

C#

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

0グッド

0クリップ

投稿2017/12/26 06:05

編集2017/12/26 06:33

こんにちわ
VS2010
C#でWebアプリーケーションを作っています

チャートコントロールを使いグラフを表示させているのですが、
デザインが思い通りにいきません。

C#

1             Chart chart = new Chart(); 2 chart.Series.Clear(); 3 4 chart = new Chart(); 5 chart.Width = 500; 6 chart.Height = 500; 7 8 Series series = new Series(); 9 series.ChartType = SeriesChartType.Line; //グラフ 10 11 series.XValueMember = "XXmember"; 12 series.YValueMembers = "Ydate"; 13 14   series.Color = System.Drawing.Color.Red; 15 series.MarkerSize = 10; 16 17 chart.Series.Add(series); 18 ChartArea area = new ChartArea(); 19 chart.ChartAreas.Add(area); 20 chart.DataSource = ds; 21 22 divChart.Controls.Add(chart); 23 divChart.DataBind();

X軸Y軸はデータバインドさせているため動的な値になります。(ちなみにY軸は日付)
これを実行すると
X軸の値が1~9こ以内なら画像のように綺麗に表示されます。
こちらは6/15から9日間のデータをとってきたもの。
イメージ説明

ですがX軸の値が10個以上の値になると画像のようにグラフが見切れてしまい、また適当な値でY軸が表示されてしまいます。
こちらは6/15より20日間のデータをとってきたもの。
イメージ説明

さらにどちらもX軸の開始が0地点ではなくずれています。

実現したい事としては、
・X軸の値が10以上でもグラフを見切れさせずに表示させたい。
・X軸の開始の値を(この場合は6/15の値)をX軸の0地点から始まるようにしたい

になります。
またグラフ内の値が大きいと全部のY軸の値を表示させたらみづらくなるため今の自動的に区切られた値になっていてもいいのですが、
この区切る値?を制御することは可能なのでしょうか?

アドバイス等よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんにちは。

・Y軸の値が10以上でもグラフを見切れさせずに表示させたい。

X軸Y軸が混乱しているようですが、「データ数が10点を超えた時も見切れないようにしたい」ですね?
しかし、データは全て表示されているのでは? 6月15日から20日目は7月4日です。そして、7月4日のデータは表示されているように見えます。

・Y軸の開始の値を(この場合は6/15の値)をX軸の0地点から始まるようにしたい

お望みの内容は「X軸(横軸)の原点を6月15日にしたい」ではないかと思います。Y軸(縦軸)の0~8については言及ないようですので。

その場合は、ChartAreas[]のAxisX.Minumumに6月15日を設定すれば良い筈です。
ただChartControlは機能が膨大ですし、ドキュメントが貧弱ですから、自力で書くのはたいへんと思います。フォーム・デザイナへChartControlを貼り付けて、そのプロパティ群を見てみることをお勧めします。

投稿2017/12/26 06:29

Chironian

総合スコア23272

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

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

pro-poke5

2017/12/26 06:36

回答ありがとうございます。 XYがぐちゃぐちゃになっていたので修正しました、失礼いたしました。 ・X軸の値が10以上でもグラフを見切れさせずに表示させたい。 これですが、値自体は見切れてないのですが、グラフの右端が1つめの画像のように綺麗におさまっていない(見切れたようになっている)のをなんとかしたく思っています。 ・X軸の開始の値を(この場合は6/15の値)をX軸の0地点から始まるようにしたい ありがとうございます。やってみます。
Chironian

2017/12/26 06:56

なるほど。目盛りの位置が嫌なのですね。 設定が山ほどあってどれを設定するのがベストなのか把握していませんが、私はデザイナーで下記を設定して目盛りについて手動で設定できました。(他のプロパティでも設定できそうな気がします。) 1. ChartAreas → Axies → X axis → MajorGrid.Interval で目盛り間隔を設定 2. ChartAreas → Axies → X axis → ScaleView.Posision でX軸の開始 3. ChartAreas → Axies → X axis → ScaleView.Size で X軸の表示幅
pro-poke5

2017/12/26 08:04

ありがとうございます。 色々試したのですが、X軸の表示幅だけがどうしても見切れてしまいます…。 グラフのサイズを400で指定いるので400にしたりそれ以下、以上と色々試したのですがどうしてもグラフが綺麗になりません。 何が原因なのでしょうか…。
Chironian

2017/12/26 08:46

ScaleView.Sizeを MajorGrid.Intervalで割り切れるように設定したら、最後の目盛りが表示されると思うのですが。例えば、ScaleView.Sizeが400なら、MajorGrid.Intervalを40などです。 それでダメなら、ちょっと分かりません。 ChartControlは設定項目がとにかく多いのでそれらしいプロパティをいろいろと調整されてみて下さい。
pro-poke5

2017/12/28 00:21

ありがとうございます!うまくできました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問