Python 调整X轴上的日期并固定MatplotLib中的图例
我想知道如何在这里调整我的日期,使它们更小,更适合输出。我尝试过旋转,但它们似乎只是漫无目的地漂浮在图表下方。另外,我想让图例在不与我的图表重叠的地方有一次Python 调整X轴上的日期并固定MatplotLib中的图例,python,python-3.x,matplotlib,Python,Python 3.x,Matplotlib,我想知道如何在这里调整我的日期,使它们更小,更适合输出。我尝试过旋转,但它们似乎只是漫无目的地漂浮在图表下方。另外,我想让图例在不与我的图表重叠的地方有一次y_pred和y_test 这些子批次是通过循环添加的,循环的数量并不总是相同的。 作为参考,no_split将确定通过TimeSeriesSplit方法运行的循环数。我删除了很多不相关的代码,所以更容易理解 这是我的密码: fig = plt.figure() tscv = TimeSeriesSplit(n_splits=self
y_pred
和y_test
这些子批次是通过循环添加的,循环的数量并不总是相同的。
作为参考,no_split将确定通过TimeSeriesSplit
方法运行的循环数。我删除了很多不相关的代码,所以更容易理解
这是我的密码:
fig = plt.figure()
tscv = TimeSeriesSplit(n_splits=self.no_splits)
for train_index, test_index in tqdm(tscv.split(X)):
X_train, X_test = X.iloc[train_index], X.iloc[test_index]
y_train, y_test = y.iloc[train_index], y.iloc[test_index]
# predict y values
y_pred = self.regressor.predict(X_test)
# plot y_pred vs y_test
y_df = pd.DataFrame(index= X_test_index)
y_pred = y_pred.reshape(len(y_pred), )
y_test = y_test.reshape(len(y_test), )
y_df['y_pred'] = y_pred
y_df['y_test'] = y_test
ax = fig.add_subplot(int(sqrt(self.no_splits)), int(sqrt(self.no_splits)+1), i)
y_df.plot(title = 'Split{}'.format(i), ax=ax, legend=False)
ax.tick_params(axis='x', rotation=45)
plt.figlegend()
plt.subplots_adjust(wspace=0, hspace=0)
plt.show()
关于日期标签:您可以在旋转命令中指定记号对齐方式,如中所示 要缩小标签,有两个选项: 选项A:导入
matplotlib.dates
,以访问并选择可产生较小标签的格式。(例如省略年份或某事)。然后还可以使用定位器以不同的方式分隔标签
选项B:使用rc_参数
或勾选_参数
来定义字体大小、系列等。应该可以开始了
正如你所看到的,应该有一个在线材料ot让你去
关于图例的信息
可以使用plt.plot(x,y,label=''nolabel')
将绘图设置为没有图例条目。例如,您可以将其与for循环相结合,以便仅在第一次迭代时绘制标签
枚举(TQM(tscv.split(X))中i(训练索引、测试索引)的
如果i==0:
plt.绘图(x,y,label=label)
其他:
plt.plot(x,y,label=''u nolabel')
在plt.show()
之前使用plt.tight\u layout()
并注释掉plt.subplot\u adjust(wspace=0,hspace=0)
?这样可以缩小图表以适应日期-我想缩小日期以适应图表,也许可以让日期与哈希标记更好地对齐?“缩小日期以适应图表”意味着使用2左右的字体大小,这将是不可读的。您确定不希望子地块之间有更多空间吗?我刚刚进行了编辑,以显示在使用更多图表的紧密布局时会发生什么。我希望有更多空间,但不会以牺牲图表为代价