ChatGPT自动生成图表
尝试使用ChatGPT通过自然语言快速绘制图表,实验的对象是文献[1]中数据分析常用的十种数据事实,使用的可视化语法是VegaLite。以下是测试的内容。
01 数值型数据事实(value)
“假设有一个销售数据集。请用VegaLite来显示这个事实:总销售额的数值是10000。”
数值型数据事实自然语言查询
数值类数据事实可视化结果
02 比较型数据事实(Difference)
基于该上下文继续提问:“假设在这个销售数据集中包含两个品牌,请用VegaLite比较这两个品牌的销售情况。”
比较型数据事实自然语言查询
比较型数据事实可视化结果
03 占比型数据事实(Proportion)
基于该上下文继续提问:“考虑在数据集中有多个品牌,请显示一个品牌在销售中的比例。”
占比型数据事实
占比型数据事实可视化结果
04 趋势型数据事实(Trend)
“该数据集有一列年份。请按年份显示销售的趋势。”
趋势型数据事实
趋势型数据事实可视化结果
05 分类型数据事实(Categorization)
“请列举出数据中包含的所有城市”
分类型数据事实
分类型数据事实可视化结果
06 分布型数据事实(Distribution)
“不同国家的销售分布情况如何?”
分布型数据事实
分布型数据事实可视化结果
07 排序型数据事实(Rank)
“请对这些国家用销售量进行排序”
排序型数据事实
排序型数据事实可视化结果
08 相关型数据事实(Association)
“销量和收入之间是否存在相关性?”
相关型数据事实
相关型数据事实可视化结果
09 极值型数据事实(Extreme)
“请展示销量最高的国家”
极值型数据事实
极值型数据事实可视化结果
10 异常型数据事实(Outlier)
“请找出所有国家中的异常点”
异常型数据事实
异常型数据事实可视化结果
小结
结果显示ChatGPT均能给出合理的解答,并且生成的可视化代码均可正确运行。其中存在两个不合理的点,一个是在占比任务中,没有使用更加常用的饼状图,另一个错误是排序任务中,它没有对可视化结果进行排序。但是总体来看,大语言模型已经能够比较好的理解可视化分析任务的语义信息,并且挑选合适的图表进行数据的展示。
文献
[1] Shi, D., Xu, X., Sun, F., Shi, Y. and Cao, N., 2020. Calliope: Automatic visual data story generation from a spreadsheet. IEEE Transactions on Visualization and Computer Graphics, 27(2), pp.453-463.
[2] Satyanarayan, A., Moritz, D., Wongsuphasawat, K. and Heer, J., 2016. Vega-lite: A grammar of interactive graphics. IEEE transactions on visualization and computer graphics, 23(1), pp.341-350.