LoginSignup
5
1

More than 5 years have passed since last update.

Plots.jlで対数スケールにした際に、補助目盛を表示する方法

Posted at

やりたいこと

普段、JuliaのPlots.jlで色々をグラフを描いているのですが、対数を描画することも多くあります。
例えばx軸を対数にするためには、xscale=:log10 とするだけでOKなのですが、残念ながらGRやPyPlotをバックエンドに選択した場合は、補助目盛が表示されません。
(環境やバージョンによっては、上記バックエンドを指定しても、デフォルトで補助目盛が表示される可能性もありますが)

普通に補助目盛を入れようとすると、ticksで値を入れることができますが、数値も一緒に表示されてしまい非常に邪魔です。
そのような場合に、面倒ですがとりあえず、補助目盛を入れる方法を記載します。

やりかた

一応、Plots.jlのAttributesに記載があります。
http://docs.juliaplots.org/latest/attributes/

具体的には、ticksの項目に以下のような記載があります。

Vector of numbers (set the tick values), Tuple of (tickvalues, ticklabels), or :auto

つまり、plot関数のキーワード引数で、ticks=([], [])と指定をすればよいだけですね。
とりあえず、以下のような形で実行が可能でした。

using Plots; gr()

xlab, xval = Float64[], Float64[]
for i in 1:10, j in 1:10
    push!(xval, i*10^j)
    i==1 && push!(xlab, 10^j)
end

plot(logspace(1,10,1000), log10.(x), scale=:log10, xticks=(xval, xlab), legend=false)

実行結果は以下の通りです。

a.png

同じことしか書いていませんが、gistは以下の通りです。
https://gist.github.com/tatssuki/3966268f380511eabe6690ad66aafc3f

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1