我想用这些数据绘制 3D 图片,matplotlib并使用Axes3D
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
data = np.array([[4244.95, 4151.69, 2157.41, 829.769, 426.253, 215.655],
[8263.14, 4282.98, 2024.68, 1014.6, 504.515, 250.906],
[8658.01, 4339.53, 2173.56, 1087.65, 544.069, 544.073]])
x = np.array([1, 2, 4, 8, 16, 32])
y = np.array([2, 4, 8])
x, y = np.meshgrid(x, y)
z = data
fig = plt.figure()
ax = Axes3D(fig)
ax.plot_surface(x, y, z, rstride=1, cstride=1, cmap='rainbow')
ax.set_xlabel('Stride')
ax.set_ylabel('Bitwidth')
ax.set_zlabel('Performance')
plt.show()
Run Code Online (Sandbox Code Playgroud)
在我的电脑中,它给出一张空白图片。但我在另外两台电脑上运行这段代码,一台是正确的,另一台是空白的。
matplotlib:3.7.1
numpy:1.24.2
我已经在windows11和wsl ubuntu-20.04中尝试过,但仍然是空白图片。
小智 6
替换这一行
ax = Axes3D(fig)
Run Code Online (Sandbox Code Playgroud)
和
ax = fig.add_subplot(projection='3d')
Run Code Online (Sandbox Code Playgroud)
这样做是为了提醒 Matplotlib 我们正在使用 3D 数据。
| 归档时间: |
|
| 查看次数: |
1091 次 |
| 最近记录: |