matplotlib同时绘制多个直方图在3d画布上


import matplotlib.pyplot as plt
import numpy as np

# Fixing random state for reproducibility
np.random.seed(19680801)


fig = plt.figure()
ax = fig.add_subplot(projection='3d')

colors = ['r', 'g', 'b', 'y']
yticks = [3, 2, 1, 0]
for c, k in zip(colors, yticks):
    # Generate the random data for the y=k 'layer'.
    xs = np.arange(20)
    ys = np.random.rand(20)

    # You can provide either a single color or an array with the same length as
    # xs and ys. To demonstrate this, we color the first bar of each set cyan.
    cs = [c] * len(xs)
    cs[0] = 'c'

    # Plot the bar graph given by xs and ys on the plane y=k with 80% opacity.
    ax.bar(xs, ys, zs=k, zdir='y', color=cs, alpha=0.8)

ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

# On the y-axis let's only label the discrete values that we have data for.
ax.set_yticks(yticks)

plt.show()

https://matplotlib.org/stable/gallery/mplot3d/bars3d.html

### 回答1: 要在 Matplotlib 中同时画多个图,可以使用子图(subplots)功能。以下是一个简单的例子,展示如何在一个图形窗口中创建两个子图: ```python import matplotlib.pyplot as plt import numpy as np # 创建两个子图,分别在第一行和第二行 fig, ax = plt.subplots(nrows=2, ncols=1, figsize=(6,6)) # 在第一个子图上绘制正弦函数 x = np.linspace(0, 2*np.pi, 100) y = np.sin(x) ax[0].plot(x, y) ax[0].set_title('Sin(x)') # 在第二个子图上绘制余弦函数 y = np.cos(x) ax[1].plot(x, y) ax[1].set_title('Cos(x)') # 展示图形 plt.show() ``` 在这个例子中,我们使用 `plt.subplots()` 函数创建了一个 2x1 的子图网格,并将其保存在 `fig` 和 `ax` 变量中。然后,我们在第一个子图上绘制了正弦函数,而在第二个子图上绘制了余弦函数。最后,我们使用 `plt.show()` 函数显示了整个图形。 ### 回答2: 在matplotlib中,可以使用figure和subplot函数同时画多个图。 首先,我们需要导入matplotlib库,并且使用pyplot模块起一个别名plt: import matplotlib.pyplot as plt 然后,我们可以使用figure函数创建一个新的图形窗口,可以指定窗口的大小和分辨率。例如,创建一个大小为10x8英寸,分辨率为80的图形窗口: fig = plt.figure(figsize=(10, 8), dpi=80) 接下来,我们可以使用subplot函数在这个窗口中创建一个或多个子图。subplot函数接受三个参数:行数、列数和子图的索引位置。例如,创建一个2x2的子图并选择第一个子图: ax1 = fig.add_subplot(2, 2, 1) 在增加其他子图时,可以重复调用ax.add_subplot函数,指定不同的索引位置。例如,创建第二个子图: ax2 = fig.add_subplot(2, 2, 2) 然后,我们可以在子图上绘制我们想要的图形,例如直方图、折线图、散点图等。例如,在第一个子图上绘制一个简单的折线图: ax1.plot([1, 2, 3, 4], [1, 4, 9, 16]) 最后,我们使用plt.show函数来显示图形窗口,查看我们所创建的多个子图: plt.show() 通过上述步骤,我们可以在同一个图形窗口中同时绘制多个图形,方便进行比较和展示。当然,还可以使用其他matplotlib的函数和方法对图形进行进一步的定制和美化。 ### 回答3: 使用matplotlib库可以同时画多个图形,可以通过创建子图(subplot)的方式实现。 首先,我们需要导入matplotlib库,并创建一个画布和子图对象: ``` import matplotlib.pyplot as plt fig, axes = plt.subplots(nrows=2, ncols=2) ``` 上述代码中,`plt.subplots()`函数会创建一个包含2行2列共4个子图的画布,并将这些子图对象存储在axes变量中。我们可以根据需要调整行列数目。 之后,我们可以使用子图对象来分别绘制每个子图的内容。例如,我们可以在第一个子图中绘制一条线: ``` axes[0, 0].plot(x, y) ``` 其中`[0, 0]`表示第一行第一列的子图。 我们还可以在每个子图中添加标题、坐标轴标签等元素来增加可读性: ``` axes[0, 0].set_title('Subplot 1') axes[0, 0].set_xlabel('X') axes[0, 0].set_ylabel('Y') ``` 通过类似的方式,我们可以使用不同的子图对象来绘制其他图形,或者在同一个子图上绘制多个图形。 最后,我们可以使用`plt.show()`函数来显示所有的子图: ``` plt.show() ``` 这样,我们就可以同时画多个图形了。通过调整子图的位置和属性,我们可以实现更加复杂和灵活的图形布局。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九是否随机的称呼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值