如何在Vegalite中基于给定数据创建分组柱状图
Vega-Lite分组柱状图实现方案
- 第一步:完成宽表转长表的数据预处理
你当前使用的是单列名称+多列数值的宽表结构,Vega-Lite分组柱状图要求输入长表格式,转换后的长表包含3个字段:加密货币名称、数值类别(Value 1/Value 2)、对应数值。转换后的数据示例如下:
Name | Category | Value BTC | Value 1 | 1 BTC | Value 2 | 2 ETH | Value 1 | 1 ETH | Value 2 | 2
- 第二步:配置核心视图参数
核心编码逻辑如下:
- 标记类型设置为
bar - X轴绑定
Name字段,类型设为名义型(nominal) - X轴偏移(xOffset)绑定
Category字段,实现同个加密货币下两个柱子的分组排列 - Y轴绑定
Value字段,类型设为定量型(quantitative) - 颜色编码绑定
Category字段,自动为不同类别的柱子分配差异化配色
完整配置参考示例:
{ "mark": "bar", "data": { "values": [ {"Name": "BTC", "Category": "Value 1", "Value": 1}, {"Name": "BTC", "Category": "Value 2", "Value": 2}, {"Name": "ETH", "Category": "Value 1", "Value": 1}, {"Name": "ETH", "Category": "Value 2", "Value": 2} ] }, "encoding": { "x": {"field": "Name", "type": "nominal"}, "xOffset": {"field": "Category"}, "y": {"field": "Value", "type": "quantitative"}, "color": {"field": "Category"} } }
内容的提问来源于stack exchange,提问作者kristoff
相关产品推荐
相关产品推荐

