今回はグラフに水平(横方向)の数直線を引いていきます。
水平線を引く
前回作ったグラフの土台に水平線を加えてみましょう。
水平線を引くときは hline! 関数を使います。線を引く位置や線の種類を指定できます。
using Plots # Plotsを使う宣言
# 1. 表示したいグラフの範囲を変数に代入する
x_min, x_max = -5, 5 # X軸で最小-5、最大5の範囲に設定
# 2. グラフの土台用に空のプロットを作成する
plot([],[], # 「空のデータ」を渡して、枠組みだけ作る
xlims=(x_min, x_max), # 横の範囲
ylims=(-1, 1), # 縦の範囲
xticks=x_min:1:x_max, # 横軸(x軸)の目盛りを1刻みにする
yticks=false, # 縦の目盛りは消す
grid=:x, # x軸の目盛り位置に合わせて縦方向のグリッド線を表示する
gridalpha=0.3, # グリッドの透明度
gridstyle=:dash, # グリッドを点線にする
size=(600, 120), # 画像のサイズ
label="", # ラベル(今の段階では非表示)
legend=false, # 凡例をオフにする
)
# 3. 数直線のメインとなる水平線を真ん中(y=0)に引く
hline!([0],
line=(:solid, 2, :black), # 実線で、太さは2、色は黒に設定
label=""
)
矢印付きの直線を引く
数直線らしく矢印付きの線にします。
-2から3の方向に向けて青色の矢印付きの線を引いていきます。コード内のコメント3(# 3)のところから、グラフの土台の後にplot!で線の範囲と位置、線の種類、矢印の向きを加えています。
矢印の向きはarrowで設定します。今回はプラス側に矢印を向けるのでarrow=:headで指定します。
(コード内ではグラフの土台を再掲しています)
using Plots # Plotsを使う宣言
# 1. 表示したいグラフの範囲を変数に代入する
x_min, x_max = -5, 5 # X軸で最小-5、最大5の範囲に設定
# 2. グラフの土台用に空のプロットを作成する
plot([],[], # 「空のデータ」を渡して、枠組みだけ作る
xlims=(x_min, x_max), # 横の範囲
ylims=(-1, 1), # 縦の範囲
xticks=x_min:1:x_max, # 横軸(x軸)の目盛りを1刻みにする
yticks=false, # 縦の目盛りは消す
grid=:x, # x軸の目盛り位置に合わせて縦方向のグリッド線を表示する
gridalpha=0.3, # グリッドの透明度
gridstyle=:dash, # グリッドを点線にする
size=(600, 120), # 画像のサイズ
label="", # ラベル(今の段階では非表示)
legend=false, # 凡例をオフにする
)
# 3. -2から3の間に、高さy=0で矢印付きの線を引く
# [始点のx, 終点のx], [始点のy, 終点のy] の順番で指定
plot!([-2, 3], [0, 0], # x軸、y軸
line=(:solid, 2, :blue), # 線の色を青に変更
arrow=:head, # [-2, 3]の[3]の位置にプラス側に向く矢印の向きをつける
label="" # ラベル(今の段階では非表示)
)
反対の向きの矢印も書いてみます。
コメント3の部分のarrowを変えます。線を-2から3まで引き、矢印を左側に付けるため arrow=:tail を指定します。
# 3. マイナス方向(左側)に矢印が付くように数直線を引く
plot!([-2, 3], [0, 0], # x軸、y軸
line=(:solid, 2, :black),
arrow=:tail, # [-2, 3]の[-2]の位置にマイナス側に向く矢印の向きをつける
label="" # ラベル(今の段階では非表示)
)
次に上下に矢印付きの線を引いてみます。
y=2の高さに-3から2へプラス向きの青い線、y=1の高さに4から-1へマイナス向きのオレンジ色の線を引きます。2本の線が収まるようにylimsとsizeを変更して、y軸の高さを少し広げます。
using Plots # Plotsを使う宣言
# 1. 表示したいグラフの範囲を変数に代入する
x_min, x_max = -5, 5 # X軸で最小-5、最大5の範囲に設定
# 2. グラフの土台用に空のプロットを作成する
plot([],[], # 「空のデータ」を渡して、枠組みだけ作る
xlims=(x_min, x_max), # 横の範囲
ylims=(0, 3), # 【変更】y=1の線とy=2の線が綺麗に収まるように縦の範囲を0〜3に変更
xticks=x_min:1:x_max, # 横軸(x軸)の目盛りを1刻みにする
yticks=false, # 縦の目盛りは消す
grid=:x, # x軸の目盛り位置に合わせて縦方向のグリッド線を表示する
gridalpha=0.3, # グリッドの透明度
gridstyle=:dash, # グリッドを点線にする
size=(600, 200), # 【変更】上下に広げたため縦のサイズを変更
label="", # ラベル(今の段階では非表示)
legend=false, # 凡例をオフにする
)
# 3. 上の線(y=2 の高さに、右向き矢印を引く)
plot!([-3, 2], [2, 2], # x軸、y軸
line=(:solid, 4, :blue),
arrow=:head, # プラス方向(右向き)
label="" # ラベル(今の段階では非表示)
)
# 4. 下の線(y=1 の高さに、左向き矢印を引く)
plot!([-1, 4], [1, 1], # x軸、y軸
line=(:solid, 4, :orange), # オレンジ色
arrow=:tail, # マイナス方向(左向き)
label="" # ラベル(今の段階では非表示)
)
上の青い線は-3から右へ5進むと2に到達し、下のオレンジ色の線は4から左へ5進むと-1に到達することを表しています。
青い線は-3+5=2、オレンジ色の線は4-5=-1を可視化しています。
可視化により、マイナスからの足し算やプラスからの引き算が直感的に捉えやすくなります。
次回はy軸にメモリを加え座標を作ります。



