我在matplotlib中使用极坐标中的绘图来制作一组原理图,看起来像,
在子图之间有比我想要的更多的空白区域。在极坐标中,set_xlim不起作用,并且set_ylim设置半径限制。我可以调整xlim和ylim吗?减少子图之间的空白的最佳方法是什么?
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
def schematic0():
fig = plt.figure(figsize=(3., 3.))
a_theta = np.linspace(-8, 8, 17) * np.pi / 8.
a = np.cos(0.5 * a_theta)
fig.subplots_adjust(left=0., bottom=0., right=1., top=1.,
wspace=0., hspace=0.)
for j in range(1, 5):
fig.add_subplot(2, 2, j, projection='polar')
ax = fig.gca()
ax.bar(a_theta, a, width=np.pi/8, color='w')
ax.spines['polar'].set_visible(False)
ax.set_xticklabels([])
ax.set_yticklabels([])
ax.xaxis.grid(False)
ax.yaxis.grid(False)
plt.savefig('foo0.png')
return fig
def schematic2():
fig = plt.figure(figsize=(3., 3.))
a_theta = np.linspace(-8, 8, 17) * np.pi / 8.
a = np.cos(0.5 * a_theta)
fig.subplots_adjust(left=-0.1, bottom=-0.05, right=1., top=1.05,
wspace=-0.1, hspace=-0.1)
for j in range(1, 5):
fig.add_subplot(2, 2, j, projection='polar',
axis_bgcolor=(1., 1., 1., 0.))
ax = fig.gca()
ax.bar(a_theta, a, width=np.pi/8, color='w')
ax.spines['polar'].set_visible(False)
ax.set_xticklabels([])
ax.set_yticklabels([])
ax.xaxis.grid(False)
ax.yaxis.grid(False)
plt.savefig('foo2.png')
return fig
答案 0 :(得分:2)
我认为你正在调整情节之间的重叠。如果重新打开网格,可以看到这些图已经在schematic0中相互撞击并在schematic2中重叠。我不确定是否有更好的方法来摆脱白色空间,而不仅仅是搞乱subplots_adjust命令:
fig.subplots_adjust(left=-0.3, bottom=-0.05, right=1., top=1.05,
wspace=-0.45, hspace=-0.15)