ずっとネットで調べていたのですが、作り方がわかりませんでした。xticks が numpy.arange(1,N) として定義されている複数の図を描画する必要があります。N は図ごとに異なります。xticks の間隔をすべての図で同じ (たとえば 1 cm) にしたいです。つまり、各図の幅は numpy.arange(1,N) のサイズに依存する必要があります。それを行う方法のアイデアはありますか?
質問する
1256 次
2 に答える
1
@tcaswellの回答を拡張するために、軸とティック間の距離の実際の寸法を細かく管理したい場合の方法を次に示します。
import numpy as np
import matplotlib.pyplot as plt
plt.close('all')
#------------------------------------------------------ define xticks setup ----
xticks_pos = np.arange(11) # xticks relative position in xaxis
N = np.max(xticks_pos) - np.min(xticks_pos) # numbers of space between ticks
dx = 1 / 2.54 # fixed space between xticks in inches
xaxis_length = N * dx
#------------------------------------------------------------ create figure ----
#---- define margins size in inches ----
left_margin = 0.5
right_margin = 0.2
bottom_margin = 0.5
top_margin = 0.25
#--- calculate total figure size in inches ----
fwidth = left_margin + right_margin + xaxis_length
fheight = 3
fig = plt.figure(figsize=(fwidth, fheight))
fig.patch.set_facecolor('white')
#---------------------------------------------------------------- create axe----
#---- axes relative size ----
axw = 1 - (left_margin + right_margin) / fwidth
axh = 1 - (bottom_margin + top_margin) / fheight
x0 = left_margin / fwidth
y0 = bottom_margin / fheight
ax0 = fig.add_axes([x0, y0, axw, axh], frameon=True)
#---------------------------------------------------------------- set xticks----
ax0.set_xticks(xticks_pos)
plt.show(block=False)
fig.savefig('axis_ticks_cm.png')
これにより、x 軸が 10 cm で、各目盛りの間に 1 cm のスペースがある 11.8 cm の図が得られます。
于 2015-07-30T14:12:53.100 に答える