logo

줄리아에서 히트맵 위에 플랏 겹쳐서 그리는 방법 📂줄리아

줄리아에서 히트맵 위에 플랏 겹쳐서 그리는 방법

코드

우리가 (5,5)(5,5) 배열의 히트맵 위에 00부터 2π2\pi까지의 사인 곡선을 그리고 싶다고 하자. 다음과 같은 코드로 짜고 싶겠지만 그림에서 보이듯 원하는 대로 출력되지 않는다.

using Plots

A = rand(Bool, 5,5)
heatmap(A, color=:greens)

x = range(0, 2pi, length=100)
y = sin.(x)
plot!(x, y, color=:red, width=3)

1.png

이는 배열 AA의 가로, 세로의 범위가 11에서 55까지로 인식되기 때문이다. 이를 해결하기 위해 아래과 같은 코드로 AA의 가로, 세로 범위가 각각 어디부터 어디까지인지 지정해주면 된다. 참고로 배열 AA의 범위를 지정하지 않고, 히트맵이 보여지는 범위만 지정하면 아래의 (나)처럼 출력된다.

xₐ = range(0,2pi, length=5)
yₐ = range(-1.5,1.5, length=5)

p1 = heatmap(xₐ, yₐ, A, color=:greens, xlims=(0,2pi), ylims=(-1.5,1.5)) #그림 (가)
p2 = heatmap(A, color=:greens, xlims=(0,2pi), ylims=(-1.5,1.5)) #그림 (나)

2.png

이제 p1 위에 사인 곡선을 다시 그리면 원하는대로 제대로 그려진다.

plot!(x, y, color=:red, width=3)

3.png

환경

  • OS: Windows10
  • Version: Julia 1.7.1, Plots 1.25.3