使用mplot3d将数据绘制成盒状而非金字塔状的方法

2024-05-23 22:54:28 发布

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

所以我有一个值数组,我正试图使用plot_surface命令来绘制它。具体来说,我有一个30x30的数组,中间有一个,其他地方有零。当我绘制它时,我得到:pyramid

不过,我希望将值表示为长方体。有可能吗

谢谢

编辑:显示图形的代码

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

N=30
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = y = np.arange(0, N)
z = np.zeros((N,N))
z[15,15] = 1
X, Y = np.meshgrid(x, y)
ax.plot_surface(X, Y, z, cmap='YlOrBr')
plt.show(block=False)

Tags: import命令plotas地方npfig绘制
1条回答
网友
1楼 · 发布于 2024-05-23 22:54:28

我认为一个三维的条形图会给出你想要的

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

N=30
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = y = np.arange(0, N)
z_bottom = np.zeros((N,N))
z_top = z_bottom.copy()
z_top[15,15] = 1
X, Y = np.meshgrid(x, y)
ax.bar3d(X.ravel(), Y.ravel(), z_bottom.ravel(), 1, 1, z_top.ravel())
plt.show(block=False)

enter image description here

如果你想玩颜色之类的游戏

相关问题 更多 >