使用matplotlib绘制漏斗图和金字塔图,要求如下: (1) 绘图结果以弹出方式显示;两个图形在同一画布并列显示; (2) 漏斗图各环节文本标签居右显示,转化率居中以百分比形式显示,文字效果自定; (3) 图例垂直居左显示,加滚动效果,标题在图表上面居中显示; (4) 自定义颜色盘; (5) 漏斗图两侧加辅助线; (6) 设置每个漏斗块的大小、相互间距、分割线颜色; (7) 根据所绘制漏斗图生成金字塔图。 (8)注释清楚代码作用。
时间: 2024-02-24 18:58:36 浏览: 78
以下是使用matplotlib绘制漏斗图和金字塔图的示例代码:
```python
import matplotlib.pyplot as plt
# 数据
labels = ['访问', '点击', '下单', '支付']
values = [1000, 800, 600, 400]
# 漏斗图
fig, ax = plt.subplots(figsize=(8, 6))
# 自定义颜色盘
colors = ['#F5A623', '#F8E71C', '#7ED321', '#4A90E2']
# 绘制漏斗图
ax.pie(values, labels=labels, colors=colors,
autopct='%1.1f%%', startangle=90)
# 设置每个漏斗块的大小、相互间距、分割线颜色
ax.axis('equal')
ax.spines['bottom'].set_color('gray')
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.spines['bottom'].set_linewidth(0.5)
ax.spines['bottom'].set_linestyle('--')
ax.spines['bottom'].set_alpha(0.3)
# 漏斗图各环节文本标签居右显示,转化率居中以百分比形式显示,文字效果自定
ax.set_xticklabels(labels, ha='right')
ax.xaxis.set_tick_params(pad=10)
for i, v in enumerate(values):
ax.text(v/2, i, '{:.1f}%'.format(v/values[0]*100),
va='center', ha='center', color='white')
# 图例垂直居左显示,加滚动效果,标题在图表上面居中显示
ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))
ax.set_title('漏斗图', y=1.1, fontsize=16)
plt.tight_layout()
# 金字塔图
fig, ax = plt.subplots(figsize=(8, 6))
# 绘制金字塔图
ax.barh(labels, values, color=colors)
# 设置每个漏斗块的大小、相互间距、分割线颜色
ax.spines['bottom'].set_color('gray')
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.spines['bottom'].set_linewidth(0.5)
ax.spines['bottom'].set_linestyle('--')
ax.spines['bottom'].set_alpha(0.3)
# 漏斗图各环节文本标签居右显示,转化率居中以百分比形式显示,文字效果自定
for i, v in enumerate(values):
ax.text(v/2, i, '{:.1f}%'.format(v/values[0]*100),
va='center', ha='center', color='white')
# 图例垂直居左显示,加滚动效果,标题在图表上面居中显示
ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))
ax.set_title('金字塔图', y=1.1, fontsize=16)
plt.tight_layout()
# 显示图形
plt.show()
```
注释:
1. 声明标签和数值的数据;
2. 创建一个画布和子图对象;
3. 自定义颜色盘;
4. 绘制漏斗图;
5. 设置漏斗图的样式;
6. 绘制金字塔图;
7. 设置金字塔图的样式;
8. 显示图形。
阅读全文