2017-04-11 22 views
1

は、私はこの1つのような対数y軸を持つチャートを持っています。ここでは直線軸(デフォルトでは1 xylineChartを作成する)と同じチャートである:指数目盛りはJFreeChart

それは LogarithmicAxisではないので残念ながら、Y軸上の私の値が指数ティックでフォーマットすることはできません

linear chart

。どのように私はそれを強制することができますか?

+0

'NumberAxis :: setNumberFormatOverride'? – trashgod

+0

@trashgodそれはあなたにそれを達成するための方法と思われます。私は 'yAxis.setNumberFormatOverride(新しいDecimalFormat(" 0。###### E0 "));を使用しましたが、' 1e5'のように指数を小文字に設定したいと思います。 'E'を' e'に置き換えると、不正な引数エラーになります。ちなみに、投稿することを躊躇しないでください、答えとして私は解決策としてそれをマークすることができます。 – pioupiou1211

+0

@trashgodこれを使うか、 'logarithmicAxis'のダンプを大文字にします。私は何か対称性が欲しい。 – pioupiou1211

答えて

1

hereのように、DecimalFormatを設定するにはsetNumberFormatOverride()を呼び出すことができます。 setExponentSeparator()メソッドをDecimalFormatSymbolsと呼び出して、目的の指数区切り文字を設定することができます。

DecimalFormatSymbols symbols = new DecimalFormatSymbols(); 
symbols.setExponentSeparator("e"); 
DecimalFormat format = new DecimalFormat("0.######E0", symbols); 
yAxis.setNumberFormatOverride(format); 

また、あなたはheresetupNumberFmtObj()のカスタム実装でLogarithmicAxisnumberFormatterObjを変更することができるはずですが、私はそれを試していません。

+0

ありがとう、それは私が探していたものです。 – pioupiou1211