- PR -

jfreechartの目盛り表示

1
投稿者投稿内容
あふち
会議室デビュー日: 2007/05/31
投稿数: 14
投稿日時: 2007-06-27 14:42
お世話になります。
現在jfreechartを使用してXYLineChartを表示しています。
X軸、あるものの個数
Y軸、あるものの故障率
でファイルよりデータを読み込んで表示しようとしています。
X軸の値はファイルによって変わります。
(1個、2個となってるものもあれば100個120個200個と任意になってて
その間隔も任意です。)
プロットされた値以外の軸には値を表示しないようにしたいのですが、
そういった目盛りの制御方法はあるのでしょうか?
せめて小数は表示しないようにだけでもできるといいのですが・・・。
ご教示よろしくお願いいたします。

すみょし
常連さん
会議室デビュー日: 2007/01/25
投稿数: 36
投稿日時: 2007-06-27 15:19
こんにちわ。

目盛をプロットした箇所だけに設定、と言うのはやったことがないのでわかりませんが、
プロットされた箇所のみに、縦線、横線を表示させる、とかの代替では駄目でしょうか?
(目盛は自動制御もしくは、指定した間隔ごとにしか設定出来なかった気がします。
 まだ勉強不足なため、知らないだけかもしれませんが)

X軸にたくさんプロットされるわけではないのであれば、
交線に、X軸値、Y軸値をラベル表示させることも可能ですので、上記方法で行ってみては如何かな、と・・・

見当違いでしたらすいません。
あふち
会議室デビュー日: 2007/05/31
投稿数: 14
投稿日時: 2007-06-27 15:32
すみょしさん、いつもありがとうございます。
本当に助かっています。

>指定した間隔ごとにしか設定

NumberAxisで何か設定できますか?
もしご存知でしたら具体的な方法をご教示いただけませんか?
整数値のみに設定できれば小数が表示されるよりは
見た目がよくなりそうなので挑戦したいです。
よろしくお願いいたします。
すみょし
常連さん
会議室デビュー日: 2007/01/25
投稿数: 36
投稿日時: 2007-06-27 16:07
こんにちわ。

いつも大したこと書いてなくって申し訳ないですが、
お役に立ててるようで何よりです。

>NumberAxisで何か設定できますか?
>もしご存知でしたら具体的な方法をご教示いただけませんか?
>整数値のみに設定できれば小数が表示されるよりは
>見た目がよくなりそうなので挑戦したいです。

目盛の最小値と最大値(端っこになる値)を設定可能ですので、それらをセット、
次に目盛間隔を設定すればOKだったかと。
最小値最大値を設定するNumberAxisのメソッドは次であってると思います。
setUpperBound(double max)
setLowerBound(double min)

目盛間隔はTickUnitで設定すると記憶してますが、ちとあいまいです。
でもとりあえず・・・
setTickUnit(NumberTickUnit unit)

「たぶん」で申し訳ないですが、上記メソッド3種駆使すれば少数出さずにすみます。
試してみてくださいー
あふち
会議室デビュー日: 2007/05/31
投稿数: 14
投稿日時: 2007-06-27 17:04
すみょしさん、本当にありがとうございます。
いろいろ試した結果

JFreeChart chart = ChartFactory.createXYLineChart(...);
XYPlot plot = chart.getXYPlot();
ValueAxis vAxis = (ValueAxis) plot.getDomainAxis();
TickUnits tickUnits = new TickUnits();
int interval←ここで任意の値設定
TickUnit unit = new NumberTickUnit(interval);
tickUnits.add(unit);

で、なんとか対応できました。
いつも、ヒントを下さってありがとうございます。

vAxis.setStandardTickUnits(tickUnits);
すみょし
常連さん
会議室デビュー日: 2007/01/25
投稿数: 36
投稿日時: 2007-06-28 09:07
おはようございます。

いつも曖昧な事ばかり言わなくって恐縮ですが、
実現できたようで良かったです。

最近はプロジェクト間のソースコード持ち出しとか厳しくて困りますねー。(当然かw)
暇を見て自分もJFreeChartで遊んでみたいなぁ。
1

スキルアップ/キャリアアップ(JOB@IT)