1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python matplotlib x轴日期显示问题。matplotlib 坐标轴设置文本间隔 matplotlib

python matplotlib x轴日期显示问题。matplotlib 坐标轴设置文本间隔 matplotlib

时间:2023-02-12 07:10:42

相关推荐

python matplotlib x轴日期显示问题。matplotlib 坐标轴设置文本间隔 matplotlib

笔者想要达成的目的:分区作图、日期坐标轴

笔者遇到的问题:

1、日期坐标轴变成一个大黑条:

2、按照其他帖子设置后,要么调整不成功,要么调整成功了但是其他的调整(包括画面尺寸)失效,要么同时产生了一堆空白图。

先给出解决方法:

大黑条的本质是坐标轴过于密集,思路就是降低坐标轴的密度。

在这里很多同学包括笔者会走到一个误区,即将坐标轴设置为日期,然后调整日期的间距

但更好的方法是,将日期视作字符,以设置坐标轴文本间隔的方式,替代日期坐标轴的刻度调整。

此外,需要注意的是,对坐标轴设置的配置需要在作图代码之后。

详见下图:

重点看 xticks和xlabels的定义 以及设置。

def RSI_drawing(self, code):# 数据导入和本例中的处理data = pd.read_excel(self.raw_data_path, sheet_name=f'{code}', header=0, index_col=0)data.sort_values(by=['trade_date'], ascending=True, inplace=True)data = data.reset_index(drop=True)# 提取日期信息totalSeed = data['trade_date']# 设置画布尺寸plt.figure(dpi=300, figsize=(24, 8))# 利用日期表中的数据制造日期间隔、并根据间隔将刻度(即索引)与文本(即日期)对齐xticks = list(range(0, len(totalSeed), 60))xlabels = [str(totalSeed[x]) for x in xticks]xticks.append(len(totalSeed))xlabels.append(totalSeed.iloc[-1])# 进行作图,此处是进行了分块作图plt.subplot(2, 1, 1)plt.title(label=f'{code}', fontdict={'family': 'KaiTi', 'color': 'k', 'size': 30}, loc='center')plt.plot(data['close'], label='close')plt.plot(data['MA10'], label='MA10')plt.grid(visible=True, axis='both')plt.legend(loc='best')# 作图完成后,配置对x轴的设置,配置我们上面设置好的刻度和间距,并调整文本角度plt.xticks(rotation=30)plt.xticks(ticks=xticks, labels=xlabels)# 下面是另一分块的作图,与上面一样。对坐标轴设置的步骤需要重复plt.subplot(2, 1, 2)plt.plot(data['RSI6'], label='RSI6')plt.plot(data['RSI12'], label='RSI12')plt.grid(visible=True, axis='both')plt.legend(loc='best')plt.xticks(rotation=30)plt.xticks(ticks=xticks, labels=xlabels)plt.show()

最后成果:

关于其他问题:

1、调整不成功:将对坐标轴的调整放在了作图代码之上

2、调整成功了但是其他的调整(包括画面尺寸)失效、生成空白图表: 定义了其他图表,比如用设置了一个ax = plt.gac(), 但是后面的作图依然使用plt进行

python matplotlib x轴日期显示问题。matplotlib 坐标轴设置文本间隔 matplotlib 坐标轴过于密集 无法实现其他功能。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。