import pandas as pd import matplotlib.pyplot as plt # 读取数据 df = pd.read_excel('E:/应统案例大赛/附件1-股票交易数据/yuceclose5.xlsx', usecols=[0,1, 2, 3, 4, 5], index_col=0, parse_dates=True) # 计算涨跌幅 change = df.pct_change() # 绘制图表 fig = plt.figure(figsize=(60,6)) change.plot() plt.xlabel('日期') plt.ylabel('涨跌幅') plt.title('股票涨跌幅') plt.legend(loc='center left', bbox_to_anchor=(1.0, 0.5)) plt.autoscale(enable=True, axis='x', tight=True) plt.savefig(f'E:/应统案例大赛/附件1-股票交易数据/股票涨跌幅.jpg') plt.show()放五张图并合起来
时间: 2023-12-12 16:02:26 浏览: 107
可以使用`subplots`函数创建一个包含5个子图的画布,并在每个子图中分别绘制涨跌幅数据。然后使用`savefig`函数将整个画布保存为一张图片。代码如下:
```
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据
df = pd.read_excel('E:/应统案例大赛/附件1-股票交易数据/yuceclose5.xlsx', usecols=[0,1, 2, 3, 4, 5], index_col=0, parse_dates=True)
# 计算涨跌幅
change = df.pct_change()
# 创建画布
fig, axs = plt.subplots(nrows=5, ncols=1, figsize=(20, 20))
# 绘制子图
axs[0].plot(change['股票1'])
axs[0].set_title('股票1')
axs[1].plot(change['股票2'])
axs[1].set_title('股票2')
axs[2].plot(change['股票3'])
axs[2].set_title('股票3')
axs[3].plot(change['股票4'])
axs[3].set_title('股票4')
axs[4].plot(change['股票5'])
axs[4].set_title('股票5')
# 设置横轴标签和标题
plt.xlabel('日期')
fig.suptitle('股票涨跌幅')
# 调整子图之间的间距
plt.tight_layout()
# 保存图片
plt.savefig(f'E:/应统案例大赛/附件1-股票交易数据/股票涨跌幅.jpg')
# 显示图片
plt.show()
```
这样就可以将5张图片绘制在一起,并保存为一张图片。其中`nrows`和`ncols`参数分别指定子图的行数和列数,`figsize`参数指定整个画布的大小,`axs`变量保存了所有子图的Axes对象,可以通过索引访问每个子图。`tight_layout`函数可以调整子图之间的间距,使得整个画布更加紧凑。
阅读全文