matplotlib轴三维

2024-10-02 00:42:54 发布

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

我试着用一天中的小时数和一年中的天数来绘制风力涡轮机的发电量。在

我做了一个小程序:

wPower1 = np.zeros((365, 24))
d = np.mat(np.arange(24))
print d
y = np.mat(np.arange(365))
for heure in range(24):
    for jour in range(365):
        wPower1[jour][heure] = wPower[24 * (jour - 1) + heure]

print wPower1
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(d, y, wPower1, rstride=1, cstride=1, linewidth=0, antialiased=False)
plt.show()

但我得到了一个错误:

ValueError: shape mismatch: objects cannot be broadcast to a single shape


Tags: infornpfigrangepltaxprint
1条回答
网友
1楼 · 发布于 2024-10-02 00:42:54

^{} documentation上写着

X,Y,Z Data values as 2D arrays

在您的例子中,d和{}是1D。要创建2D数组,numpy.meshgrid通常很有用。在

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

wPower = np.random.rand(365*24)
wPower1 = wPower.reshape(365, 24)

d,y = np.meshgrid(np.arange(24),np.arange(365))

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(d, y, wPower1, rstride=1, cstride=1, linewidth=0, antialiased=False)
plt.show()

相关问题 更多 >

    热门问题