使用python在bar3d绘图上叠加颜色

2024-10-04 03:20:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在python中使用bar3d命令绘制4列数据

  • 第1-X列
  • 第2-Y列
  • 第3-Z列
  • 第4-e栏

到目前为止,我能够绘制三列数据,如图所示:

bar3d plot

现在,我想将第4列(“e”)堆叠为这个图中的colur。 有人能推荐一种在python中实现这一点的方法吗

代码:plot1 = ax.bar3d(X,Y,Z,dx,dy,dz)

提前谢谢


Tags: 数据方法代码命令绘制axdydz
1条回答
网友
1楼 · 发布于 2024-10-04 03:20:32

通常,可以通过使用定义颜色数组 colors = plt.cm.jet(your_4th_dimension)并将其应用到绘图中,如plot1 = ax.bar3d(X,Y,Z,dx,dy,dz, color= colors)。由于您没有提供数据,下面是一个通用示例。在以下示例中,还创建了颜色栏:

import matplotlib.pyplot as plt
fig = plt.figure(figsize=(10, 10))
ax = fig.gca(fc='white', projection='3d')
x = [i for i in range(10)]
y = [2*i + 3 for i in range(10)]
z = [i**2 for i in range(10)]
#fouth dimension:
fourth_dim = [2* i**2 for i in range(10)]
colors = plt.cm.jet(fourth_dim)
ax.bar3d(x, y, 0, 1, 1, z, color= colors)
#colorbar creation:
colorMap = plt.cm.ScalarMappable(cmap=plt.cm.rainbow_r)
colorMap.set_array(fourth_dim)
colBar = plt.colorbar(colorMap).set_label('fourth dimension')
ax.set_xlabel("time")
ax.set_ylabel("distance")
ax.set_zlabel("cost")
plt.show()

image of graph

相关问题 更多 >