Plots.jlのGRバックエンド,アトリビュート探訪し続けるこのシリーズ。今回はgrid関連のアトリビュートです。
grid
,gridalpha
,gridlinewidth
,gridstyle
のアトリビュートを試してみます。
grid
設定できる値はAxis Attributesに
Show the grid lines ?
true
,false
,:show
,:hide
,:yes
,:no
,:x
,:y
,:z
,:xy
, ...,:all
,:none
,:off
.
と書いているけどGRのバックエンドがどれだけ対応しているか?実際に設定して確認してみます。 まずは,軸指定なし。
using Plots import GR gr() plot( plot(sin; grid=true, title="grid=true"), plot(sin; grid=false, title="grid=false"), plot(sin; grid=:show, title="grid=:show"), plot(sin; grid=:hide, title="grid=:hide"), plot(sin; grid=:yes, title="grid=:yes"), plot(sin; grid=:no, title="grid=:no"), plot(sin; grid=:x, title="grid=:x"), plot(sin; grid=:y, title="grid=:y"), plot(sin; grid=:xy, title="grid=:xy"), plot(sin; grid=:all, title="grid=:all"), plot(sin; grid=:none, title="grid=:none"), plot(sin; grid=:off, title="grid=:off"); size=(600, 900), titlelocation=(0.5, 0.5), legend=false, layout=(4, 3), gridalpha=0.8 ) savefig("grid.png")
軸指定なしの例を確認すると,どうも:show
,:yes
の動きがあやしそうです。
それ以外は意図した動きに見えます。
:y
とか:x
とか軸指定でなくても個別に設定できるのは便利かもしれません。
なお,デフォルトはtrue
なので,何も設定しない時は「表示」です。
次はそれぞれの軸指定を組み合わせてみます。
using Plots import GR gr() plot( plot(sin; xgrid=true, ygrid=false, title="xgrid=true\nygrid=false"), plot(sin; xgrid=:hide, ygrid=:show, title="xgrid=:hide\nygrid=:show"), plot(sin; xgrid=:yes, ygrid=:no, title="xgrid=:yes\nygrid=:no"), plot(sin; xgrid=:x, ygrid=:x, title="xgrid=:x\nygrid=:x"), plot(sin; xgrid=:y, ygrid=:y, title="xgrid=:y\nygrid=:y"), plot(sin; xgrid=:xy, ygrid=:xy, title="xgrid=:xy\nygrid=:xy"), plot(sin; xgrid=:all, ygrid=:none, title="xgrid=:all\nygrid=:none"), plot(sin; xgrid=:off, ygrid=:all, title="xgrid=:off\nygrid=:all"), size=(600, 800), titlelocation=(0.5, 0.5), legend=false, layout=(4,2), gridalpha=0.8, topmargin=(-10, :mm) ) savefig("xygrid.png")
これを見ると,やはり:show
は効かなそうです。
xgrid=:yes
が効かないところを見ると,:yes
は:y
と認識されてそうな気がします。
ygrid=:x
が効かないとかは想像通りです。軸指定で軸のシンボルを設定するのは,
あえて設定すべき値ではない気がします。
gridalpha
軸の不透明度を設定します。0.1
が透明っぽくて,0.9
と1に近づくほど透明でない感じの値を設定します。
別名
gα
とかプロパティの中にα
が入っているのが面白いです。
ga
,galpha
,gopacity
,gridopacity
,gα
例
以下に例を示します。
面白いと思うのはグリッドの方がグラフの線より上に描画されているところです。
using Plots import GR gr() plot( plot(sin; gridalpha=0.1, title="gridalpha=0.1"), plot(sin; gridalpha=0.5, title="gridalpha=0.5"), plot(sin; gridalpha=0.9, title="gridalpha=0.9"), plot(sin; xgridalpha=0.1, ygridalpha=0.9, title="xgridalpha=0.1\nygridalpha=0.9"), plot(sin; xgridalpha=0.9, ygridalpha=0.1, title="xgridalpha=0.9\nygridalpha=0.1"); layout=(3, 2), size=(900, 600), titlelocation=(0.5, 0.5), legend=false ) savefig("gridalpha.png")
当然x, y別に設定できるようです。
gridlinewidth
グリッド線の太さを指定します。
別名
grid_linewidth
,grid_lw
,grid_width
,gridlinewidth
,gridlw
,gridwidth
例
太いと線の色が濃く感じるので,gridalpha
とあわせて調整する感じでしょうか?
次が使用例です。
using Plots import GR gr() plot( plot(sin; gridlinewidth=1.0, title="gridlinewidth=1.0"), plot(sin; gridlinewidth=3.0, title="gridlinewidth=3.0"), plot(sin; gridlinewidth=5.0, title="gridlinewidth=5.0"), plot(sin; xgridlinewidth=0.1, ygridlinewidth=3.0, title="xgridlinewidth=0.1\nygridlinewidth=3.0"), plot(sin; xgridlinewidth=3.0, ygridlinewidth=0.1, title="xgridlinewidth=3.0\nygridlinewidth=0.1"); layout=(3, 2), size=(900, 600), titlelocation=(0.5, 0.5), legend=false, gridalpha=0.5 ) savefig("gridlinewidth.png")
gridstyle
グリッドのスタイルを指定します。
別名
grid_linestyle
, grid_ls
, grid_style
, gridlinestyle
, gridls
, gridstyle
例
次が使用例です。公式サイトに例示されているアトリビュートは全て利用可能のようです。
using Plots import GR gr() plot( plot(sin; gridstyle=:auto, title="gridstyle=:auto"), plot(sin; gridstyle=:solid, title="gridstyle=:solid"), plot(sin; gridstyle=:dash, title="gridstyle=:dash"), plot(sin; gridstyle=:dot, title="gridstyle=:dot"), plot(sin; gridstyle=:dashdot, title="gridstyle=:dashdot"), plot(sin; gridstyle=:dashdotdot, title="gridstyle=:dashdotdot"), plot(sin; xgridstyle=:dash, ygridstyle=:dot, title="xgridstyle=:dash\nygridstyle=:dot"), plot(sin; xgridstyle=:dashdot, ygridstyle=:dashdotdot, title="xgridstyle=:dashdot\nygridstyle=:dashdotdot"), layout=(4, 2), size=(900, 600), titlelocation=(0.5, 0.5), legend=false, gridalpha=0.8, gridlinewidth=1.0 ) savefig("gridstyle.png")