DEV Community

ggg party
ggg party

Posted on

别再手写图表了!用AI轻松搞定数据可视化

图表不会画?跟AI说句话就行

写代码画图这件事,劝退过不少人。编辑器打开了,文件是空的,脑子里想的是"画个折线图",手却不知道往哪放。查文档、调参数、处理日期格式、挪图例……折腾半小时,数据还没理清楚。我太懂了,因为我自己就是这么过来的。

现在情况不一样了。ChatGPT、Claude、Copilot,随便挑一个,你跟它说"我想看什么样的图表",它就把代码给你写好了,而且一次跑通的概率不低。这不是什么科幻设定,我天天这么干活。

AI到底在干嘛?

说白了,AI不负责画图,它负责把你想画的东西翻译成代码。你说人话,它出Python、R或者JavaScript,然后你的数据就变成图了。常用的搭配大概是这些:

  • Python配Matplotlib或Seaborn,做静态图、论文插图,稳
  • Python配Plotly,要交互、能缩放能悬停的那种
  • R配ggplot2,学术界和统计人的心头好
  • JavaScript配ECharts或D3,网页上动的图
  • 老板只要Excel图?AI也能写VBA宏

API不用背,你直接说:"我有个CSV,两列,一列日期一列销售额,帮我画折线图加趋势线,中文标题,X轴标签转45度,存成PNG。"代码马上给你。

关键是说人话

AI给不给力,很大程度看你问得清不清楚。我总结了一个公式,特别好用:

要干什么 + 数据啥样 + 用啥工具 + 图长啥样 + 存成啥格式

举个例子。你手上有个sales.csv,里面是月份和金额,想做柱状图,红色边框,高清图。

你要是说"帮我画个图",谁也帮不了你。

但你要是说:"用Python读sales.csv,第一列是月份,第二列是销售额。用matplotlib画柱状图,柱子天蓝色,边框红色,柱子上方标数值,标题写'月度销售额',保存成300dpi的png。"AI给的代码基本就是能直接跑的。

一个真实的操作过程

拿Python举例,整个过程就三步。

第一步,让AI先读数据。"我有个data.csv,三列:date、product、revenue,格式是2024-01-01这种,写段Python代码读进来并打印前五行。"

import pandas as pd
df = pd.read_csv('data.csv', parse_dates=['date'])
print(df.head())
Enter fullscreen mode Exit fullscreen mode

跑一下,确认数据没错。

第二步,画图。"用Seaborn画每个月的总收入折线图,x轴月份,y轴收入,带数据点标记,标题'月度收入趋势',图例去掉。"AI会一次性给你把分组聚合和绘图代码都写好。

第三步,跑,报错就贴给AI,改完再跑。五分钟搞定。

别把脑子扔了

AI写代码,你得把关。至少得看得懂它在干嘛:数据读得对不对,列名有没有搞错;按月求和还是逐条画,逻辑对不对;坐标轴排序有没有问题,标签重没重复;输出路径能不能找到。

AI有时候会一本正经地胡说八道——编个不存在的参数,或者用了个过时的库版本。这时候你得会看报错,会去查文档。说到底,AI是加速器,不是方向盘。

还能让AI干点别的

有时候图难看,真不怪画图代码,是数据太脏。你可以直接让AI洗数据:"revenue列空值填0,删掉product列里带'测试'的行,日期列转成标准格式。"一行提示词,pandas代码给你安排好。

你也可以把一部分数据贴给AI,问它:"这是我用户的年龄分布,你觉得用啥图展示比较合适?"它会跟你推荐直方图、箱线图或者小提琴图,还会解释为什么——等于白嫖一个懂行的顾问。

各家AI怎么选

  • ChatGPT(GPT-4系列),综合能力强,中文对话舒服,解释得很细,适合从零开始
  • Claude(Opus或者Sonnet),写代码比较稳,长代码上下文不容易丢,调试的时候给力
  • GitHub Copilot,装在编辑器里,你写它补,适合本来就在写项目的人
  • 通义灵码、文心快码,国产的,中文响应快,跟国内开发环境更搭

哪个最强不好说,顺手最重要。我自己习惯先用ChatGPT把框架搭出来,再用Copilot改细节。

几个常见的坑

Matplotlib默认不认识中文,画出来全是方块,得加plt.rcParams['font.sans-serif'] = ['SimHei']axes.unicode_minus = False

Windows路径里反斜杠容易转义出错,让AI用正斜杠,或者加个r前缀,再不行就上pathlib

列名里带空格或特殊字符的话,AI可能写成df.Revenue,其实得df['Revenue (M)']。把列名原样粘给AI,别让它猜。

Plotly在Jupyter里死活不显示?那是renderer没设置。

批量出图,才是真省事

文件多的时候,让AI写个循环。比如"文件夹里一堆sales_开头的CSV,都带date和amount列,写个循环读文件,每张图按文件名命名存到output目录。"以前干这活得两小时,现在几分钟完事。

再夸张点,让AI把所有图拼成一张大图,或者直接生成PDF报告,也不是不行。只要你描述得清楚,它就能写。

最后说点真心话

图表的代码只是工具,真正值钱的是你从图里看到的东西。AI能画出"销售趋势下滑",但它不知道三月份为啥暴跌;它能做出漂亮的散点图,但解释不了那个离群点是怎么回事。

心态放平:AI帮你解决"怎么写"的问题,让你把精力放在"看什么"和"为什么"上。我现在的习惯是,拿到数据先让AI快速探索一遍,生成一堆图,我再挑有感觉的深入看。感觉就像多了个不睡觉的同事,还不抱怨。

去试试吧。找个无聊的数据文件,打开聊天框,打一行字:"请帮我用Python画一个……"

你会发现,画图真的跟说话一样简单。熟练了之后你还会想:能不能让AI搞个实时看板?自动写周报?顺手把数据解读也写了?

都能。但你得先让它画第一张图。

Top comments (0)