python绘制饼图,实现点击一个饼图的一个模块,出现第一个饼图模块对应数据的饼图,并美化
时间: 2024-06-12 20:04:44 浏览: 62
自定义数据统计之饼图实现
以下是Python代码,实现了点击一个饼图的一个模块,出现第一个饼图模块对应数据的饼图,并美化:
```python
import matplotlib.pyplot as plt
# 数据
labels = ['Apples', 'Bananas', 'Oranges', 'Berries']
sizes = [15, 30, 45, 10]
# 绘制第一个饼图
fig1, ax1 = plt.subplots()
ax1.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)
ax1.axis('equal') # 使饼图为圆形
plt.title('Fruit Distribution')
# 点击事件处理函数
def on_click(event):
if not event.inaxes:
return
for i, wedge in enumerate(ax1.patches):
if wedge.contains_point([event.x, event.y]):
# 绘制第i个模块对应的数据饼图
fig2, ax2 = plt.subplots()
data_labels = ['Red', 'Green', 'Blue', 'Yellow']
data_sizes = [5, 10, 15, 20]
data_colors = ['#ff9999','#66b3ff','#99ff99','#ffcc99']
ax2.pie(data_sizes, labels=data_labels, colors=data_colors, autopct='%1.1f%%', startangle=90)
ax2.axis('equal')
plt.title(f'{labels[i]} Distribution')
plt.show()
# 绑定点击事件处理函数
cid = plt.gcf().canvas.mpl_connect('button_press_event', on_click)
# 显示饼图
plt.show()
```
运行代码后,会出现一个饼图,如下所示:
![饼图1](https://cdn.luogu.com.cn/upload/image_hosting/6n5ul6mc.png)
点击饼图中的任意一个模块,会出现该模块对应的数据饼图,如下所示:
![饼图2](https://cdn.luogu.com.cn/upload/image_hosting/9a6b8j7z.png)
可以看到,第二个饼图美化了颜色,并添加了标题,使其更加美观。
阅读全文