5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

plotlyのContour plotやHeat mapでアスペクト比を設定する。

Posted at

はじめに

plotlyのcontour plotやheat mapを描画させる際に、描画エリアの縦横のサイズをきちんと設定したい、というときのメモです。

描画用データの作成

最初に$0 \leqq x \leqq 1$, $-1 \leqq y \leqq 1$の範囲にある描画用データを作成します。
このとき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 \leqq x \leqq 1$, $-1 \leqq y \leqq 1$で正しいですが、x軸とy軸の単位長さが異なっています。
newplot.png

次に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()

newplot.png
x軸とy軸のスケールは合うようになりましたが、描画領域の余白が邪魔です。

更に余白とサイズを設定する

描画領域のx方向のサイズをpwidth = 250
描画領域のy方向のサイズをpheight = 500
描画領域外の余白サイズmargin = 50 (上下左右全て同じ)
として描画してみます。
このとき、レイアウト全体の大きさは次のようになることに注意します。
xサイズ: pwidth+2margin
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()

newplot.png
以上で、layout内でwidth, height, marginを設定することで、所望の描画を得ることができました。

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?