ujimushi(@旧sradjp(15364))の日記

旧スラドの日記の引越先です

guide*(Plots.jl(GR))

今回は,guide関連のアトリビュートを紹介します。 Axisアトリビュートなのでxyがあります。

アトリビュート一覧と別名

ちょっと特殊なやつを含みます。

  • guide
  • xguidexlabel
  • yguideylabel
  • [xy]?guide_position
  • [xy]?guidefontcolor
  • [xy]?guidefontfamily
  • [xy]?guidefonthalign
  • [xy]?guidefontrotation
  • [xy]?guidefontsize, [xy]?labelfontsize
  • [xy]?guidefontvalign

guideの例

これだけ少し特殊です。 xguidexlabelyguideylabelの別名を含みますが,guideの別名がlabelではありません。 (labelは凡例文字列指定)

早速使用例です。 guideで指定すると両軸に,x or yを頭につけて指定するとそれぞれの軸の指定をします。 それ以外は特に説明するところはないです。

using Plots
import GR
gr()

plot(
    plot(sin; guide="両軸", title="guide=\"両軸\""),
    plot(sin; xguide="x軸", yguide="y軸", title="xguide=\"x軸\"\nyguide=\"y軸\""),
    plot(sin; xlabel="x軸", yguide="y軸", title="xlabel=\"x軸\"\nylabel=\"y軸\"");
    titlelocation=(0.5, 0.5), layout=(2, 2), guidefontfamily="ipag",
    titlefontfamily="ipag"
)
savefig("guide.png")

guide_position

x,y軸の説明文字列の位置を変更します。

:left:bottom:right:topが指定できます。

xguide_positionでは:bottom:topyguide_positionでは :left:rightしか有効にはならないようです。

グラフを見ると,「そりゃそうか」という感じです。ただ,無効な値を指定しても エラーで落ちないことが多いのは,指定間違いが多い私としては少し困るところです。

using Plots
import GR
gr()

plot(
    plot(sin; xguide="下", yguide="右",
         xguide_position=:bottom, yguide_position=:right,
         title=("xguide_position=:bottom" * "\n"
                * "yguide_position=:right")),
    plot(sin; xguide="上", yguide="左",
         xguide_position=:top, yguide_position=:left,
         title=("xguide_position=:top" * "\n"
                * "yguide_position=:left")),
    plot(sin; xguide="右", yguide="下",
         xguide_position=:right, yguide_position=:bottom,
         title=("xguide_position=:right" * "\n"
                *"yguide_position=:bottom")),
    plot(sin; xguide="左", yguide="上",
         xguide_position=:left, yguide_position=:top,
         title=("xguide_position=:left" * "\n"
                * "yguide_position=:top")),
    layout=(2, 2), titleposition=(0.5, 0.5), guidefontfamily="ipag",
    size=(800, 600)
)

savefig("guide_position.png")

guidefontcolor

おなじみ色指定のアトリビュートです。特に説明することはありませんが, 最近手抜きだったので,少し細かく例示してみました。

途中で,foreground_color_guideでも色設定できることを確認していますが, これは,うっかりguideで文字列を表示させるのを忘れて色が変わらんと混乱している時に, 比較用として設定したものです。

guideで文字を表示させないと当然このアトリビュートは意味をなさないことは身を持って分かったので 皆さんにお伝えしておきます。

なおforeground_color_guideは後日紹介しようと思います。(といっても今回の内容ぐらいですが)

using Plots
import GR
gr()

plot(
    plot(sin; guidefontcolor=:blue, guide="シンボル指定", 
         title="guidefontcolor=:blue"),
    plot(sin; xguidefontcolor="red", yguidefontcolor=colorant"#00FFFF",
         xguide="文字列指定", yguide="16進指定",
         title="xguidefontcolor=\"red\"\nyguidefontcolor=colorant\"#00FFFF\""),
    plot(sin; xforeground_color_guide=RGB(0.0,1.0,0.0), yforeground_color_guide=colorant"magenta",
         xguide="RGB指定", yguide="色名指定",
         title="xforeground_color_guide=RGB(0.0,1.0,0.0)\nyforeground_color_guide=colorant\"magenta\""),
    plot(sin; guidefontcolor=:gray, guide="手抜き",
         title="guidefontcolor=:gray"),
    layout=(2, 2), titleposition=(0.5, 0.5), guidefontfamily="ipag",
    size=(1000, 600), left_margin=(0.5, :cm), titlefontsize=12
)

savefig("guidefontcolor.png")

guidefontfamily, guidefontsize, guidefonthalign, guidefontvalign

そして突然手抜きになる。その他のアトリビュート

guidefontfamilyguidefontsizeは特に言及することもないですが, guidefonthalignguidefontvalignは xはhalign,yはvalignしか実質関係がなさそう というのが下の例から分かると思います。

デフォルトはhalign,valignともhcentervcenterで, それぞれの軸の真ん中あたりに表示されます。

標準で指定可能なフォントファミリーについては legend_font_familyが参考になると思います。

using Plots
import GR
gr()

plot(
    plot(sin; guide="Times Bold Italic",
         guidefontfamily="times bold italic",
         guidefontsize=15,
         title=("guidefontfamily=\"times blod italic\""
                * "\n" * "guidefontsize=15")),
    plot(sin; xguide="左", yguide="上",
         xguidefonthalign=:left, yguidefontvalign=:top,
         title=("xguidefonthalign=:left" * "\n"
                * "yguidefontvalign=:top"),
         guidefontfamily="ipag"),
    plot(sin; xguide="bookman demi", yguide="helvetica",
         xguidefontfamily="bookman demi",
         yguidefontfamily="helvetica",
         title=("xguidefontfamily=\"bookman demi\""
                * "\n" * "yguidefontfamily=\"helvetica\"")),
    plot(sin; xguide="右", yguide="下",
         xguidefonthalign=:right,
         yguidefontvalign=:bottom,
         title=("xguidefonthalign=:right" * "\n"
                * "yguidefontvalign=:bottom"),
         guidefontfamily="ipag"),
    layout=(2, 2), titleposition=(0.5, 0.5),
    size=(1000, 600), left_margin=(0.5, :cm),
    titlefontsize=12
)

savefig("guide_etc.png")

注意点

最後に注意点にはなりますが,確認は全てpngファイルで行っていて, 画面表示は参考程度にしか見ていません。

というのは,ウィンドウサイズも指定できないし, サイズ指定もあてにならないし,ウィンドウサイズ変えたら文字の大きさも変わるし。

仕事で利用しているとWORD文書の作成がどうしても必要な時があり, WORDの仕様(画像をはりつけると2倍の容量が必要)のため, GRが出すpngは色数も少なく容量も小さめで重宝しています。