【发布时间】:2020-02-06 04:42:40
【问题描述】:
我正在尝试使用 matplotlib 绘制多个子图,但在出现额外比例时遇到了麻烦。我希望ax.label_outer() 只显示它看起来的外部标签,但是在 x 和 y 轴上有一组额外的刻度,都是 0-1,我不需要。它们是默认值吗?从哪里?有人可以告诉我如何摆脱它们吗?
#%%
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
%config InlineBackend.figure_format ='retina'
#%%
nrows, ncols = 2, 3
# https://stackoverflow.com/questions/28070906/loop-over-2d-subplot-as-if-its-a-1-d
fig, axes = plt.subplots(nrows = nrows, ncols=ncols, figsize=(20,10), sharex=True, sharey=True)
plt.subplots_adjust(hspace=.4, wspace=.2, top=.90)
num = 1
x = np.linspace(0, 2 * np.pi, 400)
y = np.sin(x ** 2)
num = 1
for ax in axes.flatten()[:5]:
stationName = 'Title - ' + str(num)
ax = fig.add_subplot(nrows, ncols, num)
#plt.setp(ax.get_xticklabels(), visible=False)
#plt.setp(ax.get_yticklabels(), visible=False)
ax.plot(x,y)
ax.yaxis.grid(color='gray', linestyle='dashed')
#ax.xaxis.set_tick_params(length=0)
#ax.yaxis.set_tick_params(length=0)
plt.title(stationName, loc='center', fontsize=15, fontweight=0, color='green' )
num = num + 1
fig.delaxes(axes[-1,-1])
fig.suptitle('Temperature', fontsize=20)
for ax in axes.flat:
ax.set(xlabel='Years', ylabel='Records')
for ax in axes.flat:
ax.label_outer()
# https://towardsdatascience.com/all-your-matplotlib-questions-answered-420dd95cb4ff
plt.show();
【问题讨论】:
-
对于
axes中已经存在的每个轴,您似乎在现有轴的相同位置添加了另一个轴(通过.add_subplot)。所以每个子图位置有两个轴。 -
谢谢!那行得通,但我不得不稍微改变一下我写标题的方式。我能以某种方式感谢你以表扬你吗?
标签: python matplotlib