corePlot で対数スケール(logスケール)のグラフをつくる[iPhone][objective-c]

概要

iPhoneアプリの開発でグラフ表示をする必要がありました。
様々なグラフのライブラリが存在する中、細かな調整ができて
ライセンス的にも問題のないライブラリとしてcorePlotを選択しました。

グラフの表示は、リニアスケールではなくて対数スケールで表示する必要がありましたので
検索したところ、日本語サイトでは見つけられず、英語サイトに方法がありました。

参考元サイト様

stackoverflow – How can I make semi-log graph in Core Plot?

対数スケールにする

引用元: stackoverflow – How can I make semi-log graph in Core Plot?

これだけです。簡単ですね。
対数スケールは、CPTScaleTypeLog
通常のリニアスケールは、CPTScaleTypeLinear
x軸(xScaleType)とy軸(yScaleType)にそれぞれ設定すればおkです。
ちゃんとcorePlotさんは対数スケールを用意してました(これほどのライブラリならあって当然ですね♪)
 

レンジ設定に注意!

ここで一点要注意!
対数スケールにするx軸、y軸のレンジの設定に注意してください。

上例は、x軸について0を起点として100増加分までをレンジとする設定ですが、
対数スケールの場合に、レンジの起点を「0」や「-1」などの負の値を
入れると正しくグラフが表示されません。


<広告>



このように(小数点なので、CPTDecimalFromFloatにして)「0.1」とかにすると良いようです。
「0」を起点としたグラフはよくあるのでこれは落とし穴ですよね。
実際、私もハマりました。

おわりに

CPTXYPlotSpace ってなに?そもそもcorePlotの使い方がわからない
という方は、corePlot について学んでみてください。
私は以下のサイト様を参考にしてグラフを作成しました。

 
ではでは。
 


<広告>


コメントを残す

メールアドレスが公開されることはありません。