matplotlib在两个子图中绘制两个饼图,并保持饼图标题不和饼图重合,两个饼图均是正圆,且画布大小为10*8
时间: 2024-05-05 08:20:29 浏览: 80
好的,我明白您的问题了。以下是解决方案:
```python
import matplotlib.pyplot as plt
# 创建画布
fig = plt.figure(figsize=(10, 8))
# 设置第一个子图
ax1 = fig.add_subplot(1, 2, 1)
labels1 = ['A', 'B', 'C']
data1 = [30, 40, 30]
colors1 = ['#ff9999','#66b3ff','#99ff99']
ax1.pie(data1, colors=colors1, labels=labels1, autopct='%1.1f%%', startangle=90)
ax1.set_title('Pie Chart 1', y=1.05)
# 设置第二个子图
ax2 = fig.add_subplot(1, 2, 2)
labels2 = ['D', 'E', 'F']
data2 = [20, 50, 30]
colors2 = ['#ff9999','#66b3ff','#99ff99']
ax2.pie(data2, colors=colors2, labels=labels2, autopct='%1.1f%%', startangle=90)
ax2.set_title('Pie Chart 2', y=1.05)
# 调整子图间距
plt.subplots_adjust(wspace=0.3)
# 显示图形
plt.show()
```
解释一下上面的代码:
1. 首先创建一个画布,大小为10*8,用`fig = plt.figure(figsize=(10, 8))`实现。
2. 接着,用`fig.add_subplot(1, 2, 1)`和`fig.add_subplot(1, 2, 2)`分别创建两个子图,放置在画布上。
3. 在每个子图中,用`ax1.pie()`和`ax2.pie()`分别绘制一个饼图。
4. 设置每个饼图的标签、数据和颜色,以及显示百分比和起始角度。这些都可以用`labels`、`data`、`colors`、`autopct`和`startangle`参数实现。
5. 设置每个饼图的标题,在`ax1.set_title()`和`ax2.set_title()`中设置。
6. 调整两个子图之间的间距,用`plt.subplots_adjust(wspace=0.3)`实现。
7. 最后,用`plt.show()`显示图形。
希望这个解决方案可以帮助您完成您的要求。如有任何问题,请随时告诉我。
阅读全文