matplotlib 如何从数组创建3D填充图

gwbalxhn  于 2023-11-22  发布在  其他
关注(0)|答案(1)|浏览(128)

我有一个3D矩阵,在6小时内模拟了4个随机变量2000次:

# Display the shape of the matrix_outputs array
print(matrix_outputs.shape)
(2000, 86400, 4)

字符串
第一项是从模拟运行的次数,第二项是样本的数量,最后一项是生成的变量的数量(估计的负载、估计的要收获的能量、真实的负载和真实的可再生收获)。
绘制我的第一次运行:
x1c 0d1x的数据
我用来绘制它的代码:

# Define time
        import matplotlib.pyplot as plt
        t = np.arange(0, max_sim/(60/0.25), 1/(60/0.25))  # Define time in minutes using the 'max_sim'
    
    # Create a plot
    fig, ax = plt.subplots(1)
    fig.set_size_inches(10, 5)
    ax.fill_between(t, matrix_outputs[0,:,0], facecolor='C0', alpha=0.4)
    ax.fill_between(t, matrix_outputs[0,:,1], facecolor='C1', alpha=0.4)
    ax.fill_between(t, matrix_outputs[0,:,2], facecolor='C2', alpha=0.4)
    ax.fill_between(t, matrix_outputs[0,:,3], facecolor='C3', alpha=0.4)


我想把一些东西画成下面的图像:



轴为:



到目前为止我已经

# Define time
t = np.arange(0, max_sim/(60/0.25), 1/(60/0.25))  # Define time in minutes using the 'max_sim'

# Create a 3D plot
fig = plt.figure()
ax = fig.add_subplot(projection='3d')

# Set labels for the axes
ax.set_xlabel('Time (minutes)')  # Set the x-axis label to represent time
ax.set_ylabel('Run ID')
ax.set_zlabel('Random Variable Output')

# Plot the data points using time 't', number run, and random outputs
ax.plot(t, matrix_outputs[0,:,0], matrix_outputs[:,0,0],zdir='y')

# Show the plot
plt.show()


但我不知道如何实现每个数字,使一个三维图。谢谢您的任何建议!

zi8p0yeb

zi8p0yeb1#


的数据
您可以尝试此示例来创建3D图表。

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure(figsize=(20, 10))

axl = fig.add_subplot(projection='3d')
for z in np.arange(0, 40, 10):
    x = np.arange(20)
    y = np.random.randn(20)
    axl.bar(x, y, zs=z, zdir='y')

axl.set_xlabel('x', fontsize=15)
axl.set_ylabel('y', fontsize=15)
axl.set_zlabel('z', fontsize=15)
plt.show()

字符串

相关问题