DOBON.NET DOBON.NETプログラミング掲示板過去ログ

MSChartの

  • 題名: MSChartの
  • 著者: pxf
  • 日時: 2011/10/14 10:59:04
  • ID: 29220
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[Windows XP, VB.NET 2005]
分類:[.NET]

VB.NET 2005でMSChartコントロールを使ったWindowsApplicationを制作しています。

LineチャートでGridのMinimum、Maximum、IntervalをAutoでやっているとき、軸の目盛の振られ方が添付した画像のようになってしまいます。
等間隔に目盛線が引かれているのはわかるのですが、プロット部分のMinimumの位置を基点として等間隔になっているため、-2, 18, 38, 58, ...という中途半端な位置になってしまっています。

これを、0を基点にした目盛に自動的になるようにしたいのですが、そういうプロパティってないのでしょうか...

(添付画像の例で言えば、-10, 0, 10, 20, 30, ...という具合に)

ご存知の方いましたら、ご教授願います。
添付ファイル: Image1.gif (23 KB)
  • 題名: Re[1]: MSChartの
  • 著者: jiji
  • 日時: 2011/10/14 14:50:06
  • ID: 29221
  • この記事の返信元:
  • この記事への返信:
  • ツリーを表示
こんなんですか?
<ChartArea>.AxisX.Minimum = -10;
■No29221に返信(jijiさんの記事)
> こんなんですか?
> <ChartArea>.AxisX.Minimum = -10;

返信ありがとうございます!

そうですね、Max, Min, Intervalが固定ならこのやり方もできるんですが、
今回やりたいものは、入ってくるデータの値が不確定(使用者側で自由)なため、このへんは全部Autoの設定にしています。

『データが書き替わる度にデータの最小値を見て、その値とIntervalの値からMinimum値を算出して決めて代入する』

という方法も考えてみたのですが、Interval値もAutoなため、実際やろうとおもうとMinimum値を算出するところで手詰まってしまいます..

上の方法のほかに、IntervalOffset(Grid線を引き始める位置のオフセット?)を同じ方法で計算して、毎回代入する方法も考えましたが、これもInterval値自体がAutoのため、算出するところで手詰まります。
  • 題名: Re[3]: MSChartの
  • 著者: jiji
  • 日時: 2011/10/14 18:37:20
  • ID: 29223
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
Autoにこだわらないほうが簡単じゃないですか?
  • 題名: Re[3]: MSChartの
  • 著者: ピンフ
  • 日時: 2011/10/14 18:49:24
  • ID: 29224
  • この記事の返信元:
  • この記事への返信:
  • ツリーを表示
2011/10/14(Fri) 18:52:24 編集(投稿者)

■No29222に返信(pxfさんの記事)

> 『データが書き替わる度にデータの最小値を見て、その値とIntervalの値からMinimum値を算出して決めて代入する』
>
> という方法も考えてみたのですが、Interval値もAutoなため、実際やろうとおもうとMinimum値を算出するところで手詰まってしまいます..

データの最小値と最大値からインターバルを計算する、というのも手だと思います。
ただし、このアルゴリズムを考えなければなりませんが、取り得る値の範囲が指数関数的に変化するのでなければ、
例えば、範囲の幅を10で割り、それより大きい切れのいい数(1×10^n,2×10^n,5×10^nなどの数)を
インターバルにしたり、等、色々な案があると思います。

インターバル等をAutoにするのは、所詮コントロール内のアルゴリズム任せなので、期待通りの結果になるとは限らないことと考えた方が自然だと思います。
  • 題名: Re[4]: MSChartの
  • 著者: pxf
  • 日時: 2011/10/17 8:57:45
  • ID: 29244
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
お二人の言う通り、Autoに拘らず自力で計算してやったほうが簡単そうです。

横着しようとしすぎて逆に難しく考えすぎていたみたいです。

みなさんアドバイスどうもありがとうございます。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板