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

如何修改Matplotlib中密度矩阵3D柱状图颜色以匹配论文样式?

复现密度矩阵3D图样式问题

我在复现论文结果时,无法复现一款带有特定颜色样式的密度矩阵3D图。

当前代码

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = np.array(range(0, 16), float)
y = x.copy()
xpos, ypos = np.meshgrid(x, y)
z = np.array(m).reshape(-1)
xpos = xpos.flatten()
ypos = ypos.flatten()
zpos = np.zeros_like(xpos)
dx = 0.75 * np.ones_like(zpos)
dy = dx.copy()
dz = z.flatten() # This is the actual data.
fig = plt.figure()
ax = fig.add_subplot(111,projection = '3d')
ax.bar3d(xpos, ypos, zpos, dx, dy, dz,
     shade=True
        )
title = titles[t]
t += 1
ax.title.set_text(r"{w}".format(w=title))
plt.show()

当前生成的图

当前生成的图

论文中的目标图

论文中的目标图

请问需要添加或修改哪些参数才能让我的图匹配论文中的样式?


修改建议

  • 关闭阴影并设置统一深色:论文图无阴影且柱子为单一深色,将shade=True改为shade=False,添加color='#2c3e50'(或类似深灰/黑色)参数。
  • 调整柱子紧凑度:当前dx/dy为0.75,论文柱子空隙更小,可改为0.9左右减少间距。
  • 隐藏坐标轴刻度与边框:论文图无坐标轴元素,添加以下代码:
    ax.set_xticks([])
    ax.set_yticks([])
    ax.set_zticks([])
    for spine in ax.spines.values():
        spine.set_visible(False)
    
  • 调整视角:论文图偏俯视,用ax.view_init(elev=25, azim=-55)(数值可微调)调整视角。
  • 删除重复画布创建:代码中重复创建了fig和ax,删掉冗余的那一组,避免资源浪费。

修改后的示例代码片段:

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = np.array(range(0, 16), float)
y = x.copy()
xpos, ypos = np.meshgrid(x, y)
z = np.array(m).reshape(-1)
xpos = xpos.flatten()
ypos = ypos.flatten()
zpos = np.zeros_like(xpos)
dx = 0.9 * np.ones_like(zpos)
dy = dx.copy()
dz = z.flatten() # This is the actual data.

# 样式调整
ax.bar3d(xpos, ypos, zpos, dx, dy, dz, shade=False, color='#2c3e50')

# 隐藏坐标轴元素
ax.set_xticks([])
ax.set_yticks([])
ax.set_zticks([])
for spine in ax.spines.values():
    spine.set_visible(False)

# 调整视角
ax.view_init(elev=25, azim=-55)

title = titles[t]
t += 1
ax.title.set_text(r"{w}".format(w=title))
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:27:47