You need to enable JavaScript to run this app. Python中如何在X轴绘制多个布尔列展示各营销活动接受情况
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何在X轴绘制多个布尔列展示各营销活动接受情况

营销活动接受率可视化实现方案

核心逻辑:AcceptedCmp系列列为0/1编码,直接计算列均值即可得到各活动的客户接受率,排序后绘制差异化高亮的条形图,可快速识别接受度最高、最低的活动。

  • 第一步:依赖导入与数据统计
import pandas as pd
import matplotlib.pyplot as plt
# 解决中文乱码(无需可删除)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 提取所有营销活动响应列
cmp_cols = [col for col in df3.columns if col.startswith('AcceptedCmp')]
# 计算接受率(转百分比,按降序排列)
accept_rate = df3[cmp_cols].mean().mul(100).sort_values(ascending=False)
  • 第二步:绘制高亮极值的条形图
# 配色规则:最高接受率用深绿、最低用浅红,其余用浅灰
colors = ['#2E8B57' if idx == 0 
          else '#CD5C5C' if idx == len(accept_rate)-1 
          else '#D3D3D3' 
          for idx in range(len(accept_rate))]

ax = accept_rate.plot(kind='bar', color=colors, figsize=(8, 5), edgecolor='white')

# 给每个条形添加百分比标签
for p in ax.patches:
    h = p.get_height()
    ax.annotate(f'{h:.1f}%', (p.get_x() + p.get_width()/2, h), ha='center', va='bottom')

# 图表样式调整
plt.title('各营销活动客户接受率对比', fontsize=14, pad=20)
plt.xlabel('营销活动编号', fontsize=12)
plt.ylabel('接受客户占比(%)', fontsize=12)
plt.xticks(rotation=0)
plt.ylim(0, accept_rate.max() * 1.2)
plt.tight_layout()
plt.show()
  • 输出效果说明:
    • 所有活动按接受率自动从高到低排序
    • 接受度最高、最低的活动会被专属颜色高亮,无需手动对比
    • 每个条形上方直接标注精确百分比,无需对照坐标轴读数

内容的提问来源于stack exchange,提问作者Yilmaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.07 15:36:08