如何修改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
相关产品推荐
相关产品推荐

