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

如何用Python从字典列表绘制3D条形图?

基于字典列表数据绘制3D条形图的可行方案

当然可以实现,用Python的matplotlib库结合其mplot3d模块就能完成,下面是具体步骤和代码示例:


1. 准备依赖库

先导入所需的工具库:

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

2. 数据转换

将你的字典列表提取为数组格式,方便绘图时调用:

# 替换为你实际的字典列表数据
data = [
    {"a": 1.2, "b": 3.4, "c": 5.6},
    {"a": 2.3, "b": 4.5, "c": 6.7},
    {"a": 3.4, "b": 5.6, "c": 7.8}
]

# 提取各字段的数值数组
a_vals = np.array([item["a"] for item in data])
b_vals = np.array([item["b"] for item in data])
c_vals = np.array([item["c"] for item in data])

3. 绘制3D条形图

使用bar3d函数创建3D条形图,参数对应条形的位置、尺寸和高度:

# 设置条形的宽度(x方向)和深度(y方向)
dx = dy = 0.5

# 创建画布和3D坐标轴
fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(111, projection='3d')

# 绘制3D条形:x轴对应a值,y轴对应b值,z轴高度为c值
ax.bar3d(
    a_vals - dx/2,  # x起始位置(居中对齐)
    b_vals - dy/2,  # y起始位置(居中对齐)
    np.zeros_like(c_vals),  # z起始位置(从底部0开始)
    dx, dy, c_vals  # 条形的宽度、深度、高度
)

# 设置坐标轴标签
ax.set_xlabel('a')
ax.set_ylabel('b')
ax.set_zlabel('c')

# 调整视角,让图形更清晰
ax.view_init(elev=20, azim=45)

# 显示图形
plt.show()

关键说明

  • 如果你想自定义条形颜色,可以给bar3d添加color参数,比如color='#4287f5'
  • 若数据量较大,可调整dx和dy的数值避免条形重叠
  • view_init函数用来调整3D视角,elev是仰角,azim是方位角,可按需修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 08:10:31