关于谁强谁若其实没必要多说,但是谁更厉害,操作性更强,今天用一个实例来证明:
- 如果数据量较少,在excel中可视化的操作带来的便捷性是绝对的占据优势的,
- 但是,如果数据量很大,我劝你不要费劲了,excel没有那个功能
- ecxel中一个无法解决的问题就是:X轴如果显示刻度就是出现看不清楚刻度,一大堆密密麻麻的数据,无法美化显示效果,
而我们想要的效果可是,简化显示的内容,间隔显示刻度可能就是一个很好的解决方案
这个方法我也找了很久了,今天分享给大家
在excel里面:
![bb6855d342167bc599d6feb6f9424dc3.png](https://img-blog.csdnimg.cn/img_convert/bb6855d342167bc599d6feb6f9424dc3.png)
出现的问题主要有:
- 不能全部显示刻度标签
- 无法间隔显示刻度
导入今天的素材:
df = pd.read_csv("https://github.com/selva86/datasets/economics.csv")
如果可以加载不进去,跳转:https://github.com/selva86/datasets/。自行下载
预览一下数据:
![3a7c91d48011aa907a79982cfd990851.png](https://img-blog.csdnimg.cn/img_convert/3a7c91d48011aa907a79982cfd990851.png)
我们的数据源是1967年到2015年的经济数据,共574条,如果
第二步如果不对X轴进行设置,将574个标签刻度全部显示将会是怎样?
![c16b7026e5aeaa57f89181ff46c51a7a.png](https://img-blog.csdnimg.cn/img_convert/c16b7026e5aeaa57f89181ff46c51a7a.png)
可以看到我们的X轴的刻度标签已经完全看不到了
而我们可能更想要的是简化版的刻度,比如按照年或者更精简的显示方式,只要大致能看出来时间就好
修改x轴间隔为12:
![023415c73dbe8a1d77c530ff8b818efd.png](https://img-blog.csdnimg.cn/img_convert/023415c73dbe8a1d77c530ff8b818efd.png)
此时X轴的标签刻度已经减少了很多,但是仍旧没有达到想要的效果,如果我们将其旋转90度:
![9ed3e0e1023924ea7b286d109e895872.png](https://img-blog.csdnimg.cn/img_convert/9ed3e0e1023924ea7b286d109e895872.png)
虽然勉强将显示效果略有提高,但是不便于观看,所以,还需要再继续将间隔拉大
将间隔设置为30后:已经达到了我们想要的效果
![130adfbb1b1e43a2c076995d38c73647.png](https://img-blog.csdnimg.cn/img_convert/130adfbb1b1e43a2c076995d38c73647.png)
方法解析:
![fb8ac030f7e25ae39564cc2ed863b26a.png](https://img-blog.csdnimg.cn/img_convert/fb8ac030f7e25ae39564cc2ed863b26a.png)
设置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)