如何用Matplotlib+NumPy设置1900-2020年每5年的X轴刻度?
解决方案
你可以通过以下步骤实现X轴每5年显示刻度的需求:
用NumPy生成目标刻度数组:
使用numpy.arange()生成1900到2020之间步长为5的年份序列,注意因为arange是左闭右开区间,结束值要设为2021才能包含2020。设置Matplotlib的X轴刻度:
调用plt.xticks()将生成的数组作为X轴刻度,同时可以添加旋转参数避免刻度重叠。
修改后的完整代码如下:
import numpy as np import matplotlib.pyplot as plt import pandas as pd # 你的现有代码 prize_year = df_data.groupby('year').agg({'prize': pd.Series.count}) prize_year.rolling(window=5).mean().head(10) # 绘制图表并设置X轴刻度 plt.xlim(1900, 2020) plt.scatter(prize_year.index, prize_year.values) # 用NumPy生成每5年的刻度并设置 x_ticks = np.arange(1900, 2021, 5) plt.xticks(x_ticks, rotation=45) # rotation参数可选,用于优化刻度显示 plt.show()
关键说明
np.arange(1900, 2021, 5):生成包含1900、1905、...、2020的整数数组,正好符合每5年一个刻度的要求。plt.xticks(x_ticks, rotation=45):将X轴刻度替换为生成的数组,旋转45度是为了避免年份文本重叠,提升可读性。
内容的提问来源于stack exchange,提问作者Tamerlan
相关产品推荐
相关产品推荐

