俺のOneNote

俺のOneNote

データ分析が仕事な人のOneNote愛とか、分析小話とか。

Matplotlib アスペクト比の調整

Matplotlibでグラフ描写する際、アスペクト比でちょっとはまってしまったので覚書メモです。

グラフ描写準備

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
plt.style.use("ggplot")

x = np.linspace(-3,3,100)
x2 = np.linspace(0,3,100)
f_y1 = np.exp(x)
f_y2 = np.log(x2)

グラフ描写

まずは普通に描写してみる。

#plt.figure(figsize=(6,6))
g = plt.subplot()
g.plot(x,f_y1, color="red")
g.plot(x2,f_y2, color="blue")
g.set_ylim([-3,3])
g.set_xlim([-3,3])

f:id:kopaprin:20180924005602p:plain

と、こんな感じでx,y軸の範囲は同じであるにも関わらず横長になる。
指数関数と対数関数の逆関数関係なので、できれば正方形で表示したいのです。

アスペクト比を調整するにはset_aspect('equal')を入れればいいらしい。

g = plt.subplot()
g.plot(x,f_y1, color="red")
g.plot(x2,f_y2, color="blue")
g.set_ylim([-3,3])
g.set_xlim([-3,3])
g.set_aspect('equal')

f:id:kopaprin:20180924005828p:plain

公式リファレンスはこちら


figsizeでも上手くいく。個人的にはいつもコレでサイズ調整することが多いので、 こっちを使っておいて良さそう。

plt.figure(figsize=(5,5))
g = plt.subplot()
g.plot(x,f_y1, color="red")
g.plot(x2,f_y2, color="blue")
g.set_ylim([-3,3])
g.set_xlim([-3,3])

f:id:kopaprin:20180924010102p:plain