在Python

时间:2016-10-22 12:10:04

标签: python numpy matplotlib visualization

我有三个1D向量,前两个是坐标,第三个是值。我无法弄清楚使用pcolorimshow绘制它们的简单方法,因为这些函数接受 meshgrid 值,而有趣的是我的向量已经是 meshgrid 的矢量表示:

csv_data=StringIO("""subsample, colsample, val
     0.6, 0.6, 0.87277
     0.7, 0.6, 0.87408
     0.8, 0.6, 0.87294
     0.9, 0.6, 0.87242
     0.6, 0.7, 0.87341
     0.7, 0.7, 0.87238
     0.8, 0.7, 0.87290
     0.9, 0.7, 0.87285
     0.6, 0.8, 0.87268
     0.7, 0.8, 0.87392
     0.8, 0.8, 0.87353
     0.9, 0.8, 0.87223
     0.6, 0.9, 0.87147
     0.7, 0.9, 0.87271
     0.8, 0.9, 0.87247
     0.9, 0.9, 0.87324
    """)

df = pd.read_csv(csv_data, sep=', ')

X, Y, Z = df.subsample.values, df.colsample.values, df.val.values

正如您所看到的X的每个值,都有一整套Y值。并且对于Y的每个值,存在一组完整的X值,其中Z已经计算过。如何基于此数据将x,y和z构造为网格结构?

1 个答案:

答案 0 :(得分:0)

数据必须是二维数组,这可以通过重塑方法轻松完成。

X = X.reshape((4,4))
Y = Y.reshape((4,4))
Z = Z.reshape((4,4))

plt.contourf(X,Y,Z)