fig, axs = plt.subplots(3, 4, figsize=(15, 10))去掉第十一和第十二张图
时间: 2023-07-08 13:31:11 浏览: 91
可以使用 `axs[-1, -1].remove()` 和 `axs[-1, -2].remove()` 去掉第十一和第十二张图,修改后的代码如下:
```
fig, axs = plt.subplots(3, 4, figsize=(15, 10))
axs[-1, -1].remove() # 去掉第十二张子图
axs[-1, -2].remove() # 去掉第十一张子图
```
相关问题
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()放五张图并合起来
可以使用`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`函数可以调整子图之间的间距,使得整个画布更加紧凑。
plt.subplot(221) plt.plot(x,y,color='r') 画4个子图,要求画出 y=x y=x2 y=cos(x) y=2x 4条基本函数曲线,曲线的的颜色和样式要不一致,4张图要有 标题(title)标签,标签为函数名(如第一张图的标签为'y=x')
`plt.subplots()` 函数用于创建一个网格化的子图布局,而 `plt.subplot(221)` 在一个2行2列的网格中创建了第1个小图。接下来的代码将按照您的需求,在这4个小图上分别画出 `y=x`, `y=x^2`, `y=cos(x)` 和 `y=2x` 四种基本函数,并设置它们的颜色和样式各异,同时加上相应的标题和标签。
```python
import matplotlib.pyplot as plt
import numpy as np
# 定义x值范围
x = np.linspace(-np.pi, np.pi, 100)
# 创建一个2行2列的子图网格
fig, axs = plt.subplots(2, 2, figsize=(8, 6))
# 图形1: y=x (红色实线)
axs[0, 0].set_title('y=x')
axs[0, 0].plot(x, x, 'r-', label='y=x')
# 图形2: y=x^2 (蓝色虚线)
axs[0, 1].set_title('y=x^2')
axs[0, 1].plot(x, x**2, 'b--', label='y=x^2')
# 图形3: y=cos(x) (绿色点状线)
axs[1, 0].set_title('y=cos(x)')
axs[1, 0].plot(x, np.cos(x), 'g:', label='y=cos(x)')
# 图形4: y=2x (紫色双折线)
axs[1, 1].set_title('y=2x')
axs[1, 1].plot(x, 2*x, 'purple-.', label='y=2x')
# 添加图例
for ax in axs.flat:
ax.legend()
# 展示图形
plt.tight_layout() # 保持子图间合适的间距
plt.show()
阅读全文