plotly의 Contour plot 및 Heatmap을 통해 종횡비를 설정합니다.

개시하다


plotly의 contour plot과 heat map을 그릴 때, 그림 영역의 가로 사이즈를 잘 설정해야 합니다.

드로잉 데이터 생성하기


먼저 $0\leqx\leq1$범위의 드로잉 데이터를 생성합니다.
이때 x방향은 1의 길이, y방향은 2의 길이로,coutour plot을 제작할 때는 가로 1세로 2의 축의 길이를 원합니다.
import numpy as np
import plotly.graph_objects as go


# coutour plot用データの作成
xmin, xmax, dx =  0, 1, 0.1
ymin, ymax, dy = -1, 1, 0.1

values = np.array([[x**2+y**2 for x in np.arange(xmin, xmax+dx, dx)] 
                for y in np.arange(ymin, ymax+dy, dy)])

일반 드로잉

# countour plotの作成その1
data=go.Contour(z = values,
                x0 = xmin, y0=ymin, dx=dx, dy=dy, 
                showscale=False,
                )
fig = go.Figure(data=data)
fig.show()
표시 범위는 $0\leqx\leq1$, $-1\leqy\leq1$정확하지만 x축과 y축의 단위 길이는 다릅니다.

그리고 Y축에 잠금을 설정합니다.


layout을 만들고 Y축의 scaleanchor와 x축을 정렬합니다.
# contour plotの作成その2(アンカーをy軸に設定)
data=go.Contour(z = values,
                x0 = xmin, y0=ymin, dx=dx, dy=dy, 
                showscale=False,
                )
layout = go.Layout(yaxis=dict(scaleanchor='x',),
                   )
fig = go.Figure(data=data, layout=layout)
fig.show()

x축과 y축의 비례는 일치하지만, 그리는 영역의 경계가 방해됩니다.

여백 및 크기 추가 설정


그리기 영역 x 방향의 크기는 pwidth=250입니다
드로잉 영역의 y 방향 크기는 pheight=500입니다.
도면 영역 밖의 빈 크기 margin = 50(위아래 좌우 동일)
로 표시됩니다.
이때 레이아웃 전체의 크기는 다음과 같다.
x 크기: pwidth+2*margin
y 사이즈: pheight+2*margin
pwidth, pheight, margin = 250, 500, 50
data=go.Contour(z = values,
    x0 = xmin, y0=ymin, dx=dx, dy=dy, 
    showscale=False,
    )
layout = go.Layout(
    width=pwidth + 2*margin,
    height = pheight+2*margin,
    margin = dict(l=margin, r=margin, t=margin, b=margin, autoexpand=False),
    yaxis=dict(scaleanchor='x',),
    )
fig = go.Figure(data=data, layout=layout)
fig.show()

위에서 말한 바와 같이layout에width,height,margin을 설정하면 원하는 그림을 그릴 수 있습니다.

좋은 웹페이지 즐겨찾기