python图片x轴数据过多_一个操作证明python数据可视化比excel强百倍:X轴刻度间隔显示...

关于谁强谁若其实没必要多说,但是谁更厉害,操作性更强,今天用一个实例来证明:

如果数据量较少,在excel中可视化的操作带来的便捷性是绝对的占据优势的,

但是,如果数据量很大,我劝你不要费劲了,excel没有那个功能

ecxel中一个无法解决的问题就是:X轴如果显示刻度就是出现看不清楚刻度,一大堆密密麻麻的数据,无法美化显示效果,

而我们想要的效果可是,简化显示的内容,间隔显示刻度可能就是一个很好的解决方案

这个方法我也找了很久了,今天分享给大家

在excel里面:

python图片x轴数据过多_一个操作证明python数据可视化比excel强百倍:X轴刻度间隔显示..._第1张图片

出现的问题主要有:

不能全部显示刻度标签

无法间隔显示刻度

导入今天的素材:

df = pd.read_csv("https://github.com/selva86/datasets/economics.csv")

如果可以加载不进去,跳转:https://github.com/selva86/datasets/。

预览一下数据:

python图片x轴数据过多_一个操作证明python数据可视化比excel强百倍:X轴刻度间隔显示..._第2张图片

我们的数据源是1967年到2015年的经济数据,共574条,如果

第二步如果不对X轴进行设置,将574个标签刻度全部显示将会是怎样?

python图片x轴数据过多_一个操作证明python数据可视化比excel强百倍:X轴刻度间隔显示..._第3张图片

可以看到我们的X轴的刻度标签已经完全看不到了

而我们可能更想要的是简化版的刻度,比如按照年或者更精简的显示方式,只要大致能看出来时间就好

修改x轴间隔为12:

python图片x轴数据过多_一个操作证明python数据可视化比excel强百倍:X轴刻度间隔显示..._第4张图片

此时X轴的标签刻度已经减少了很多,但是仍旧没有达到想要的效果,如果我们将其旋转90度:

python图片x轴数据过多_一个操作证明python数据可视化比excel强百倍:X轴刻度间隔显示..._第5张图片

虽然勉强将显示效果略有提高,但是不便于观看,所以,还需要再继续将间隔拉大

将间隔设置为30后:已经达到了我们想要的效果

python图片x轴数据过多_一个操作证明python数据可视化比excel强百倍:X轴刻度间隔显示..._第6张图片

方法解析:

python图片x轴数据过多_一个操作证明python数据可视化比excel强百倍:X轴刻度间隔显示..._第7张图片

设置x轴的角度:rotation:ax1.tick_params(axis='x', rotation=0, labelsize=12)

设置显示间隔:

ax2.set_xticks(np.arange(0, len(x),30))

ax2.set_xticklabels(x[::30], rotation=90, fontdict={'fontsize':10})

思路其实很简单,你有574个数据,你只需要提供两个列表,一个是从0开始到573中的,另外一个就是需要显示的日期的,只要将两个数据的间隔设置为一致,你想怎么显示都可以啦

x = df['date']y1 = df['psavert']y2 = df['unemploy']# Plot Line1 (Left Y Axis)fig, ax1 = plt.subplots(1,1,figsize=(30,9), dpi= 80)ax1.plot(x, y1, color='tab:red')# Plot Line2 (Right Y Axis)ax2 = ax1.twinx() # instantiate a second axes that shares the same x-axisax2.plot(x, y2, color='tab:blue')# Decorations# ax1 (left Y axis)ax1.set_xlabel('Year', fontsize=20)ax1.tick_params(axis='x', rotation=0, labelsize=12)ax1.set_ylabel('Personal Savings Rate', color='tab:red', fontsize=20)ax1.tick_params(axis='y', rotation=0, labelcolor='tab:red' )ax1.grid(alpha=.4)# ax2 (right Y axis)ax2.set_ylabel("# Unemployed (1000's)", color='tab:blue', fontsize=20)ax2.tick_params(axis='y', labelcolor='tab:blue')ax2.set_xticks(np.arange(0, len(x)))ax2.set_xticklabels(x[::], rotation=90, fontdict={'fontsize':10})# ax2.set_xticks(np.arange(0, len(x), 60))# ax2.set_xticklabels(x[::60], rotation=90, fontdict={'fontsize':10})ax2.set_title("Personal Savings Rate vs Unemployed: Plotting in Secondary Y Axis", fontsize=22)fig.tight_layout()plt.show()

你可能感兴趣的:(python图片x轴数据过多)