logo

ジュリアプロットで軸の方向や目盛りの方向を反転させる方法 📂Julia

ジュリアプロットで軸の方向や目盛りの方向を反転させる方法

コード

$$ 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$をヒートマップで描くと以下のように現れる。

plot_14.svg

見てのとおり、行列として見えるものとは異なり行方向が反転している。これはバグではなく直交座標系を基準とすれば自然な結果だが、いずれにせよ行列とまったく同じようには見られないため非常に紛らわしくなる。

flip

heatmap(A, yflip = true)

alt text

上のようにyflip = trueオプションを与えるとy軸の方向が反転して行列とまったく同じように現れる。問題は、普通われわれが行列を扱うとき行のインデックスを左に、列のインデックスを上に置くのとは異なり、依然としてx軸の目盛りが下に位置することである。

mirror

heatmap(A, yflip = true, xmirror = true)

alt text

上のように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)