当前位置: 首页 > news >正文

使用AI把普通的条形柱状图,丰富成“好看高大上”的条形柱状图

使用AI把普通的条形柱状图,丰富成“高大上”的条形柱状图

  • 案例背景
  • 修改过程
    • 第一步:信息重构 - 从“罗列数据”到“讲明观点”
    • 第二步:数据增维 - 从“单一”到“丰富”
    • **第三步:视觉引导 - 从“分散”到“聚焦” (已更新)**
    • 第四步:美学润色 - 从“默认”到“精致”
    • 总结:你的“图表升维”沟通清单

案例背景

假设你是一家SaaS公司的产品经理,你想分析用户流失的原因。你用Excel拉出了一张基础图表:

【迭代前:一张普通的数据罗列图】

import matplotlib.pyplot as plt
import numpy as np# --- 准备工作:设置中文字体 ---
# 解决中文显示问题,'SimHei' 是黑体,你也可以使用 'Microsoft YaHei' 等
plt.rcParams['font.sans-serif'] = ['SimHei']
# 解决负号显示问题
plt.rcParams['axes.unicode_minus'] = False# --- 数据准备 ---
reasons = ['价格过高', '功能缺失', '竞品更好', '技术问题', '客服糟糕', '操作复杂']
counts = [2160, 960, 720, 480, 360, 120]# --- 绘制图表 ---
fig, ax = plt.subplots(figsize=(10, 6))# 绘制水平条形图
bars = ax.barh(reasons, counts, color='skyblue')# 设置标题和坐标轴标签
ax.set_title('用户流失原因分析', fontsize=16)
ax.set_xlabel('用户数')
ax.set_ylabel('流失原因')# 在条形图右侧显示具体数值
for bar in bars:width = bar.get_width()ax.text(width + 20, bar.get_y() + bar.get_height()/2,f'{width}',va='center')# 调整布局以防标签被截断
plt.tight_layout()# 显示图表
plt.show()

在这里插入图片描述
这张图信息没错,但有点平淡无奇。

  1. 信息量不足: 图表只显示了用户数,如果能结合用户满意度或功能类别,信息量会更大。
  2. 缺乏精确数据: 条形图没有具体的注释,读者只能估算数值和功能。
  3. 视觉混乱: 默认的蓝色很单调,可以根据某一维度(如功能类别)进行着色。
  4. 排版不精: 标题和坐标轴字体普通,可以添加一些内容来让视觉更聚焦。
  5. 无故事性: 标题过于平淡,没有传达任何发现或结论。

【迭代后:一张有观点、有洞察的诊断图】

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import matplotlib.patches as mpatches# --- 准备工作:设置中文字体 ---
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False# --- 1. 数据准备 (增维后) ---
reasons = ['价格过高', '功能缺失', '竞品更好', '技术问题', '客服糟糕', '操作复杂']
counts = np.array([2160, 960, 720, 480, 360, 120])
total_users = counts.sum()
percentages = counts / total_users# 增维:为原因添加分类标签
categories = ['[经济因素]', '[产品因素]', '[经济因素]', '[产品因素]', '[服务因素]', '[产品因素]']
y_labels = [f"{cat} {reason}" for cat, reason in zip(categories, reasons)]# 增维:根据用户类型定义颜色
user_type_colors = {'中小客户': '#ff7f0e',   # 橙色'大客户': '#56B4E9'      # 清新的天蓝色
}
colors = [user_type_colors['中小客户'] if r in ['价格过高', '竞品更好'] else user_type_colors['大客户'] for r in reasons]# --- 2. 创建画布并进行美学润色 ---
fig, ax = plt.subplots(figsize=(14, 8), dpi=100)
fig.patch.set_facecolor('white')
ax.set_facecolor('white')# --- 3. 绘制核心图表 ---
sns.barplot(x=counts, y=y_labels, palette=colors, orient='h', ax=ax)# --- 4. 信息重构与增维 (标题、标签、图例) ---
fig.suptitle('揭秘用户流失主因:价格是头号杀手', fontsize=22, fontweight='bold', x=0.5, y=0.98)
ax.set_title(f'在所有流失原因中,仅“价格过高”一项就占据了{percentages[0]:.0%}的主导地位', fontsize=14, pad=20, loc='center')
ax.set_xlabel(f'在 {total_users:,} 名流失用户中的提及次数及占比', fontsize=12, labelpad=15)
ax.set_ylabel('')for i, (p, c) in enumerate(zip(ax.patches, counts)):ax.text(p.get_width() + 50, p.get_y() + p.get_height() / 2,f'{c:,} ({percentages[i]:.1%})',fontsize=12, color='black', va='center')legend_patches = [mpatches.Patch(color=color, label=label) for label, color in user_type_colors.items()]
ax.legend(handles=legend_patches, title='主要来源用户群', loc='lower right', fontsize=10, frameon=False)# --- 5. 视觉引导 (【重点修改】注释框与箭头布局) ---# 【修改点 1】为“价格过高”设置新的注释内容,并精确调整位置以避免与副标题重叠
annotation_text_price = '其占比远超其他所有原因。'
ax.annotate(annotation_text_price, xy=(counts[0] - 200, 0),  # 箭头指向条形图的中后段xytext=(counts[0] - 400, -0.4), # 注释框精确地放在副标题下方fontsize=11, ha='center',bbox=dict(boxstyle="round,pad=0.5", fc="#FFF9E5", ec="grey", lw=0.5, alpha=0.9),arrowprops=dict(arrowstyle="-|>", connectionstyle="arc3,rad=-0.2", fc="k", ec="k"))# 【修改点 2】为“竞品更好”的注释框微调位置,确保整体布局和谐
annotation_text_competitor = '主要瓶颈:\n用户对价格高度敏感,\n认为产品价值与成本不匹配。'
ax.annotate(annotation_text_competitor, xy=(counts[2], 2), xytext=(counts[2] + 600, 2.5),fontsize=11, ha='center',bbox=dict(boxstyle="round,pad=0.5", fc="#FFF9E5", ec="grey", lw=0.5, alpha=0.9),arrowprops=dict(arrowstyle="-|>", connectionstyle="arc3,rad=-0.15", fc="k", ec="k"))# --- 6. 最终美学润色 ---
sns.despine(left=True, bottom=True)
ax.grid(axis='x', linestyle='--', alpha=0.6)
ax.tick_params(axis='y', labelsize=12, length=0)
ax.set_xlim(0, counts.max() * 1.25)plt.tight_layout(rect=[0, 0.03, 1, 0.93])
plt.show()

在这里插入图片描述1. 用颜色区分‘用户类别’。
2. 将‘次数和百分比’作为数据标签,显示在每个条形的末端,进一步丰富数据。
3. 将‘经济因素,产品因素’也作为数据标签,提升信息量,与满意度一同显示。

修改过程

我们将整个过程拆解为四个递进的层次。每个层次都包含“升级要点”、“具体做什么”以及“相关Prompt”。

第一步:信息重构 - 从“罗列数据”到“讲明观点”

核心目标: 直接把最核心的结论交给看图观众。

升级要点具体做什么(以案例为准)可以这样问AI (Prompt)
1. 提炼强力标题将平淡的“用户流失原因分析”改为更具冲击力的“揭秘用户流失主因:价格是头号杀手”。帮我把图表标题[你的原标题]改得更有冲击力、更能揭示核心观点。我的核心发现是[你的核心发现,例如:价格是主要原因]
2. 增加“画龙点睛”的副标题计算出最重要数据点的占比,形成摘要。例如,增加副标题:“在所有流失原因中,仅‘价格过高’一项就占据了45%”。请根据我的数据,计算出[最重要的数据项,如“价格过高”]的数值占总数的百分比。然后,帮我把这个发现写成一个醒目的副标题,放在主标题下面。
3. 精确化坐标轴信息让数据更有背景感和说服力。将X轴标题“用户数”改为“在4,800名流失用户中的提及次数及占比”。帮我优化X轴(或Y轴)的标题。现在的标题是[原坐标轴标题],我想让它包含样本总量信息,总样本是[你的总样本量,如4800个用户],请帮我重写一个更精确的标题。

第二步:数据增维 - 从“单一”到“丰富”

核心目标: 在一张图里呈现更多层次的信息,让观众看得更深。

升级要点具体做什么(以案例为准)可以这样问AI (Prompt)
1. 为数据项增加分类给Y轴的流失原因打上标签,揭示其属性。如[经济因素][产品因素][服务因素]请为我的Y轴数据项增加分类标签。分类规则如下:[例如:'价格过高'属于[经济因素];'功能缺失'和'技术问题'属于[产品因素]... ]。请把标签放在数据项前面。
2. 丰富数据标签让观众一眼看到绝对值和相对重要性。将2160变为“2,160 (45.0%)”。请更新我的数据标签。除了显示原始数值外,请在括号里加上它占总数的百分比。
3. 引入新维度并用颜色编码引入一个全新的分析维度。比如,我们将“用户类型”(大客户 vs. 中小客户)用颜色区分,并创建图例。我想增加一个“用户类型”的分析维度,并用颜色区分。['价格过高', '竞品更好'主要来自中小客户,请用橙色表示;'客服糟糕', '技术问题'主要来自大客户,请用蓝色表示]。请生成图表并创建一个图例来解释颜色。

第三步:视觉引导 - 从“分散”到“聚焦” (已更新)

核心目标: 像导演一样,用视觉语言引导观众的视线,让他跟着你的逻辑走。

升级要点具体做什么(以案例为准)可以这样问AI (Prompt)
1. 用注释框强制视觉焦点使用一个带引导箭头的注释框来高亮最关键的发现。例如,为“价格过高”添加一个注释框,内容为“其占比远超其他所有原因”,并用一条弧线箭头精确指向该数据条,让其压倒性优势一目了然。为了强调“[最重要的数据项]”的压倒性优势,请为它添加一个注释框,内容是“[你的注释内容]”。请用一条优雅的弧形箭头将注释框与数据条连接起来,确保箭头能清晰地建立视觉联系。
2. 用补充说明建立内容关联为需要补充说明的数据(如“竞品更好”)添加带有背景色和圆角的注释框,提供更深层次的解读(“主要瓶颈…”)。同样使用引导线连接,确保图表元素间的逻辑关系清晰可见。我想为“[相关数据项]”添加一个补充说明。请创建一个注释框,内容是“[你的补充说明]”。要求:1. 注释框有淡黄色背景和圆角。2. 用一条引导线将它与对应的数据条连接。
3. 优化布局避免遮挡在添加注释时,要考虑整体布局,避免遮挡标题、数据标签等关键信息。必要时,可以调整注释框和箭头的位置,找到一个既能清晰说明又不干扰阅读的最佳位置。刚才添加的注释框遮挡了副标题,请调整它的位置,把它放在副标题的下方,并确保箭头依然能准确指向对应的数据。请帮我优化一下整体布局。
4. 建立信息层级通过字体、字号、粗细的对比,让图表主次分明,阅读体验更流畅。主标题最突出,副标题次之,数据标签、坐标轴再次之。请优化图表的字体和版式,建立清晰的视觉层级。要求:主标题最大、加粗;副标题稍小;数据标签和坐标轴文字尺寸适中;图例文字最小。

第四步:美学润色 - 从“默认”到“精致”

核心目标: 在信息清晰的基础上,提升图表的专业感和美感,让它看起来“很贵”。

升级要点具体做什么(以案例为准)可以这样问AI (Prompt)
1. 优化配色方案颜色不仅要好看,更要有意义。使用一个更现代、专业的色板,比如用饱和度高的颜色强调,用灰色系作为中性色。请为这张图表换一个更现代、更专业的配色方案。[可以提出具体要求,如:使用科技蓝和活力橙作为主色调,搭配高级灰。或者直接说:给我一个商务汇报风格的配色方案]
2. 弱化辅助元素背景不应该抢戏。将扎眼的实线网格改为浅灰色的虚线网格,既能对齐数据,又不干扰视觉主体。背景的网格线太抢眼了,请把它们改成浅灰色的、更细的虚线,让它们在视觉上退后一步。
3. 调整元素样式细节是魔鬼。将粗壮的条形图调得更纤细,增加呼吸感;为注释框加上轻微的阴影和圆角,提升质感。请调整图表元素的样式,让它更精致。具体要求:1. 条形图的宽度调窄一点。2. 注释框增加一点柔和的阴影和圆角。

总结:你的“图表升维”沟通清单

下次当你想升级一张图表时,可以直接拿出这张清单,一步步向AI提要求。

迭代层次核心目标关键指令/提问
1. 信息重构强化核心观点- 标题能更震撼吗?
- 最重要的发现是什么?能用一句话总结在标题下吗?
- 坐标轴信息能更精确吗(比如加上总量)?
2. 数据增维丰富信息层次- 数据可以分类吗?(给Y轴加标签)
- 数据可以展示更多信息吗?(数值+百分比)
- 能引入新的分析维度吗?(用颜色或形状编码新变量)
3. 视觉引导设计视觉焦点- 如何高亮最重要的数据?(用带箭头的注释框
- 如何解释特定数据点?(添加带引导线的补充说明框
- 元素布局是否会重叠?(调整注释框位置,避免遮挡
- 字体和布局有主次之分吗?
4. 美学润色提升专业质感- 配色方案能更专业/有意义吗?
- 背景元素(如网格线)是不是太抢眼了?
- 图表元素(如条形图)的样式能更精致吗?
http://www.dtcms.com/a/291597.html

相关文章:

  • 解决win10下Vmware虚拟机在笔记本睡眠唤醒后ssh连接不上的问题
  • PyQt5—QInputDialog 学习笔记
  • 印度给巴铁断水,中国悄然开建雅鲁藏布江水电站,纯属巧合!
  • Python 标准库之 os 模块全面讲解
  • 大模型为什么出现幻觉?
  • 在Anolis8.6上源码编译安装部署OpenVAS(GVM)未完待续
  • 华为云CCE-PV使用OBS存储类之坑
  • Android NDK ffmpeg 音视频开发实战
  • 语义化版本规范(SemVer)
  • 【计算机组成原理】符号位OF、ZF、CF、SF详解
  • c语言 进阶 动态内存管理
  • stream event
  • Playwright-MCP浏览器会话复用全解析
  • swiper js无缝滚动---解决播放总是有间隔、动画一闪一跳的问题
  • 3.组合式API父子通信
  • 【免费版】开启 Youtube 双语字幕
  • 神经网络——非线性激活
  • Java学习-----AIO模型
  • STM32小实验四--按键控制LED灯
  • tar 解压:Cannot change ownership to uid 1000, gid 1000: Operation not permitted
  • 2021-06-27 51单片机外部中断0控制数码管0自增到9
  • 知识之镜:当检索生成照见人类认知的深渊
  • C++ 分配内存释放内存
  • LinkedList的模拟实现(双向链表Java)
  • JavaScript的引入方式和基础语法的快速入门与学习
  • 单表查询-分页提前获取数据
  • ni-app 对鸿蒙的支持现状
  • 【系统全面】Linux进程——基础知识介绍
  • 【智能协同云图库】智能协同云图库第二期:基于腾讯云 COS 对象存储—开发图片各功能模块
  • 从0开始的中后台管理系统