【发布时间】:2019-02-26 23:13:46
【问题描述】:
我正在尝试使用 matplotlib 生成矩形阵列的曲面图(在我的例子中,它是 47x70)。这个数组的组织方式是:
47 - 这个维度表示特征的数量
70 - 这个维度表示样本的数量
该数组包含每个样本中这些特征的值。
如果我要在 MATLAB 或 Octave 中生成曲面图,那真的很简单。
vals = csvread("vals.csv");
surf(vals)
输出看起来像这样 -
vals.csv 中的数组生成如下 -
tempvals = np.random.randint(0, 10000, size = (47, 70))
np.savetxt("vals.csv", tempvals, delimiter=',')
如何在 python/matplotlib 中做到这一点?
There is a pretty nice answer here。但是,这个答案使用了一些我不能使用的插值。我想直接绘制我的值。
我试着写一些非常基本的东西。像这样——
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
vals = np.genfromtxt('vals.csv', delimiter=',')
fig1 = plt.figure(1, figsize = (9, 6))
ax1 = fig1.add_subplot(111, projection = '3d')
xax = np.arange(0, 46)
yax = np.arange(0, 70)
xax, yax = np.meshgrid(yax, xax)
Axes3D.plot3D(xax, yax, vals)
当然,这会因错误而失败 -
AttributeError: 'numpy.ndarray' object has no attribute 'has_data'
我已经通过this entire page,但我错过了一些东西。如何生成矩形阵列的曲面图?
【问题讨论】:
-
“使用插值”是什么意思?您是否正在寻找由一系列长方体组成的情节?如果是这样,
bar3d应该可以解决问题
标签: python python-3.x numpy matplotlib mplot3d