ジュリアプロットで軸の方向や目盛りの方向を反転させる方法
コード
$$ A = \begin{bmatrix} 1 & 5 & 9 & 13 \\ 2 & 6 & 10 & 14 \\ 3 & 7 & 11 & 15 \\ 4 & 8 & 12 & 16 \end{bmatrix} $$
A = reshape(1:16, 4, 4)
heatmap(A)
たとえば上のような行列$A$が与えられているとしよう。軸反転は普通ヒートマップや画像を扱うときに有用であり、$A$をヒートマップで描くと以下のように現れる。
見てのとおり、行列として見えるものとは異なり行方向が反転している。これはバグではなく直交座標系を基準とすれば自然な結果だが、いずれにせよ行列とまったく同じようには見られないため非常に紛らわしくなる。
flip
heatmap(A, yflip = true)
上のようにyflip = trueオプションを与えるとy軸の方向が反転して行列とまったく同じように現れる。問題は、普通われわれが行列を扱うとき行のインデックスを左に、列のインデックスを上に置くのとは異なり、依然としてx軸の目盛りが下に位置することである。
mirror
heatmap(A, yflip = true, xmirror = true)
上のようにxmirror = trueオプションを追加すると、図はそのままでx軸の目盛りだけが上に移動する。
コード全文
using Plots
default(size = [400, 400], xlabel = "x", ylabel = "y")
A = reshape(1:16, 4, 4)
heatmap(A)
heatmap(A, yflip = true)
heatmap(A, yflip = true, xmirror = true)
