You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何绘制堆叠多y变量气泡图展示施工项目车辆周度进场数据

问题1:图表标准名称

这类图表的标准名称是分类气泡矩阵图,也常被叫做二维分类气泡图,你之前查询的“离散堆叠气泡图”是不通用的非标准俗称。它本质是散点图的变体:将两个分类维度(x轴的周数、y轴的车辆类型)作为网格坐标,第三个数值维度(车辆进场数量)映射为气泡大小,部分可视化工具也会将它归类到热力散点图的子类中。

问题2:实现方案&替代思路

现有需求的实现方法

你描述的需求可以用几乎所有主流可视化工具实现:

  • 办公软件(Excel/WPS表格):先整理三列结构化数据:周数、车辆类型(提前给每类车型赋值为数值,比如小汽车=1、厢式货车=2、卡车=3,后续将y轴刻度替换为车型名称即可)、进场数量。插入图表时选择「气泡图」,分别将周数、车型赋值列、数量列对应到x轴、y轴、气泡大小维度,调整气泡透明度、坐标轴格式即可完成。
  • 代码实现(Python):用Matplotlib的scatter方法即可快速实现,示例代码如下:
import matplotlib.pyplot as plt
import pandas as pd

# 示例数据结构,替换为你自己的数据集即可
df = pd.DataFrame({
    "week": [1,1,2,3,3,3],
    "vehicle_type": ["小汽车", "厢式货车", "卡车", "小汽车", "厢式货车", "卡车"],
    "count": [5,2,1,7,3,4]
})

# 车型映射y轴数值
type_map = {"小汽车":1, "厢式货车":2, "卡车":3}
df["y_val"] = df["vehicle_type"].map(type_map)

# 绘制图表
plt.figure(figsize=(12, 4))
plt.scatter(x=df["week"], y=df["y_val"], s=df["count"]*15, alpha=0.6, color="#2196F3")
plt.yticks([1,2,3], ["小汽车", "厢式货车", "卡车"])
plt.xlabel("一年中的周数")
plt.ylabel("车辆类型")
plt.grid(alpha=0.3)
plt.show()

如果需要做交互式看板,可以用Plotly实现,hover时可以直接显示具体的进场数量,查阅更方便。

  • BI工具(Tableau/PowerBI):零代码即可实现,直接将周数字段拖到列功能区,车辆类型字段拖到行功能区,进场数量字段拖到「大小」标记卡,自动生成对应图表,调整气泡的大小范围、颜色即可。

可选的优化思路

如果你的数据覆盖多年,还有两个更适配的方案可以选:

  1. 保留气泡图形式,新增颜色维度映射年份,同周同车型的不同年份气泡可以做小幅度的位置偏移避免重叠,或者直接按年分页展示。
  2. 如果不需要精确对比数量级,只需要快速识别空周和繁忙程度,可以用分类热力图替代,将进场数量映射为颜色深浅,识别趋势的效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 23:24:00