简化以下绘图代码:plt.rcParams['font.sans-serif']=['SimHei'] plt.figure(figsize=(10,5)) plt.title('一周时间内的小时有效性时序图') plt.plot(x1,validity(hourly_time_list, data1)) plt.xlabel('时间') plt.ylabel('有效性') plt.xticks(np.arange(0,len(x1),24),['2010-04-18','2010-04-19','2010-04-20','2010-04-21','2010-04-22','2010-04-23','2010-04-24']) plt.show() plt.figure(figsize=(10,5)) plt.title('一周时间内的日有效性时序图') plt.plot(x2,validity(daily_time_list, data1)) plt.xlabel('时间') plt.ylabel('有效性') plt.xticks(np.arange(0,len(x2)),['2010-04-18','2010-04-19','2010-04-20','2010-04-21','2010-04-22','2010-04-23','2010-04-24']) plt.show()
时间: 2023-06-11 13:05:46 浏览: 93
可以试着将相同的代码整合在一起,减少重复的代码,同时可以使用循环语句来实现:
```python
plt.rcParams['font.sans-serif']=['SimHei']
# 设置子图数量和尺寸
fig, axs = plt.subplots(nrows=2, ncols=1, figsize=(10,10))
# 设置标题和x、y轴标签
axs[0].set_title('一周时间内的小时有效性时序图')
axs[0].set_xlabel('时间')
axs[0].set_ylabel('有效性')
axs[1].set_title('一周时间内的日有效性时序图')
axs[1].set_xlabel('时间')
axs[1].set_ylabel('有效性')
# 循环绘制两个子图
for i, x in enumerate([x1, x2]):
# 绘制子图
axs[i].plot(x, validity(hourly_time_list if i==0 else daily_time_list, data1))
# 设置x轴刻度和标签
axs[i].set_xticks(np.arange(0,len(x) if i==1 else len(x),24))
axs[i].set_xticklabels(['2010-04-18','2010-04-19','2010-04-20','2010-04-21','2010-04-22','2010-04-23','2010-04-24'])
# 显示子图
plt.show()
```
以上代码会绘制出两个子图,第一个子图表示一周内每小时的有效性,第二个子图表示一周内每日的有效性。两个子图共用一个x轴刻度,并且可以通过循环来减少重复的代码。
阅读全文