logo

ジュリアでの曲線から特定の値まで/二つの曲線の間/閉曲線の内部の塗り方 📂ジュリア

ジュリアでの曲線から特定の値まで/二つの曲線の間/閉曲線の内部の塗り方

特定の値まで塗る1

plot()の属性でfillrange=afillalpha=bfillcolor=:colorを使うと、プロットされた曲線から値aまで:colorの色をbの透明度で塗る。fill=(a,b,:color)と書いても同じ機能をする。つまり、以下の2つのコードは同じだ。

plot(x,y, fillrange=a, fillalpha=b, fillcolor=:color)
plot(x,y, fill=(a,b,:color))

バグみたいだけど、fillrangeの値を$(0,1)$から選ぶと、塗りつぶしがされない。

1.svg

using Plots

random_walk = cumsum(rand(20).-.5)

p1 = plot(random_walk,fill=(1,0.2,:lime), lw=3, legend=:bottomright)
p2 = plot(random_walk,fill=(2,0.2,:tomato), lw=3, legend=:bottomright)
plot(p1, p2)

2つの曲線の間を塗る

fillalphaの値に片方の曲線の関数値を入れると、2つの曲線の間が色付けされる。

2.svg

rw = random_walk

plot([rw rw.+1],fill=(rw.+1,0.2,:lime), lw=3, legend=:bottomright)

閉曲線の内部を塗る

fillalphaの値を$(0,1)$だけではなく選ぶと、内部が塗りつぶされる。

3.svg

theta = range(0,2pi, length=40)
x = cos.(theta)
y = sin.(theta)

plot(x, y, fill=(1,0.2,:lime), xlim=(-3,3), ylim=(-1.5,1.5), size=(800,400), lw=3)

環境

  • OS: Windows10
  • Version: Julia 1.6.2, Plots 1.23.6