logo

격자 모델 시뮬레이션 첫걸음: 히트맵으로 나타내기 📂동역학

격자 모델 시뮬레이션 첫걸음: 히트맵으로 나타내기

시뮬레이션

코드 리뷰

Step 1. 격자 공간 생성

julia> colormap\_SI = [colorant"#EEEEEE", colorant"#111111"]

julia> row\_size = 5
5

julia> column\_size = 5
5

julia> Random.seed!(3);

julia> stage\_lattice = rand(['S'], row\_size, column\_size)
5×5 Array{Char,2}:
 'S'  'S'  'S'  'S'  'S'
 'S'  'S'  'S'  'S'  'S'
 'S'  'S'  'S'  'S'  'S'
 'S'  'S'  'S'  'S'  'S'
 'S'  'S'  'S'  'S'  'S'

위의 코드는 $5 \times 5$ 크기의 빈 격자 공간을 만들고 랜덤한 위치 두 곳을 채운 것이다. 빈 공간은 문자 'S', 채운 공간은 'I'로 표시되어있다.

Step 2. 히트맵으로 플로팅

stage\_lattice[rand(1:row\_size), rand(1:column\_size)] = 'I'; stage\_lattice
figure = heatmap(reverse(stage\_lattice,dims=1), color=colormap\_SI,
  xaxis=false,yaxis=false,axis=nothing, size = [400,400], legend = false)
png(figure, "lattice\_tutorial.png"); figure

위 코드를 실행시키면 다음과 같은 이미지 파일이 생성된다. Step 1. 에서 본것처럼 2행 3열의 'I'가 검은색으로 칠해진 것을 확인할 수 있다.

lattice\_tutorial.png

전체 코드

다음은 이 포스트에 쓰인 줄리아 코드다.

cd(@__DIR__) # 파일 저장 경로

@time using Plots
@time using Random

colormap_SI = [colorant"#EEEEEE", colorant"#111111"]
row_size = 5
column_size = 5
Random.seed!(3);

stage_lattice = rand(['S'], row_size, row_size)
stage_lattice[rand(1:row_size), rand(1:column_size)] = 'I'; stage_lattice
figure = heatmap(reverse(stage_lattice,dims=1), color=colormap_SI,
  xaxis=false,yaxis=false,axis=nothing, size = [400,400], legend = false)
png(figure, "lattice_tutorial.png"); figure