python 写3D柱状图
时间: 2023-10-20 10:23:37 浏览: 82
可以使用Python中的matplotlib库来绘制3D柱状图。以下是一个简单的示例代码:
```python
from mpl_toolkits import mplot3d
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = plt.axes(projection='3d')
# 生成数据
x = np.arange(1, 6)
y = np.arange(1, 6)
z = np.zeros((5, 5))
dz = np.random.rand(5, 5)
# 绘制3D柱状图
ax.bar3d(
x.flatten(), y.flatten(), z.flatten(), 0.5, 0.5,
dz.flatten(), color='b'
)
# 设置图表标题和坐标轴标签
ax.set_title('3D柱状图示例')
ax.set_xlabel('X轴')
ax.set_ylabel('Y轴')
ax.set_zlabel('Z轴')
plt.show()
```
运行此代码可生成一个简单的3D柱状图,其中x、y、z轴上均为1-5的值,柱高由随机生成的值确定。您可以根据需要修改和扩展此代码。
相关问题
python画图3d柱状图,3d直方图 ax.bar3d
您可以使用Python的Matplotlib库中的mpl_toolkits.mplot3d来绘制3D柱状图和直方图,其中ax.bar3d函数可以用于创建3D柱状图。
例如,以下是一个使用ax.bar3d绘制3D柱状图的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# 数据
x = np.random.randint(0, 10, 10)
y = np.random.randint(0, 10, 10)
z = np.random.randint(0, 10, 10)
dx = np.ones_like(x)
dy = np.ones_like(y)
dz = z
# 绘制3D柱状图
ax.bar3d(x, y, z, dx, dy, dz)
# 添加轴标签
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()
```
如果您想要绘制3D直方图,可以使用ax.hist3d函数。以下是一个使用ax.hist3d绘制3D直方图的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 数据
x = np.random.randn(100)
y = np.random.randn(100)
z = np.random.randn(100)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# 绘制3D直方图
hist, xedges, yedges = np.histogram2d(x, y, bins=10)
xpos, ypos = np.meshgrid(xedges[:-1]+xedges[1:], yedges[:-1]+yedges[1:])
xpos = xpos.flatten()/2.
ypos = ypos.flatten()/2.
zpos = np.zeros_like(xpos)
dx = xedges[1] - xedges[0]
dy = yedges[1] - yedges[0]
dz = hist.flatten()
ax.bar3d(xpos, ypos, zpos, dx, dy, dz, color='b', zsort='average')
# 添加轴标签
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()
```
希望这能帮到您!
用python做3d柱状图,怎么使每个柱状图颜色随机
你可以使用 `matplotlib` 和 `numpy` 库来创建3D柱状图,并使用 `random` 库来生成随机颜色。下面是一个简单的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import random
# 生成随机数据
x = np.arange(10)
y = np.arange(10)
z = np.zeros(10)
dx = np.ones(10)
dy = np.ones(10)
dz = np.arange(10)
# 创建3D图像
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# 随机生成颜色
colors = []
for i in range(10):
colors.append((random.random(), random.random(), random.random()))
# 绘制柱状图
ax.bar3d(x, y, z, dx, dy, dz, color=colors)
# 设置坐标轴标签
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
# 显示图像
plt.show()
```
在上述代码中,我们使用 `random.random()` 方法生成一个随机浮点数,该方法返回一个 [0, 1) 之间的随机数,我们将其作为 RGB 颜色的三个分量之一,以生成随机颜色。
阅读全文