2014-05-04 54 views
0
z值的矩阵

说我有一个列表的字典中的等高线图:生成基于使用MatPlotLib

dict = {} 
for x in range(0, 11): 
    dict[x] = [0,1,2,3,4,5,6,7,8,9,10] 

我将如何去创造从这个数据的等高线图?数据结构基本上是z值的矩阵,其中x和y坐标分别等价于字典键和值。

+0

将您的数据转换为numpy数组将是一个不错的第一步。 – tacaswell

回答

1

如果我理解正确的数据类型,将其转换成numpy的数组,然后绘制它,你可以这样做:

import numpy as np 
import pylab as plt 

# The example dict/matrix 
dict = {} 
for x in range(0, 11): 
    dict[x] = [0,1,2,3,4,5,6,7,8,9,10] 

# Create an empty numpy array with the right dimensions 
nparr = np.zeros((len(dict.keys()), len(dict[0]))) 

# Loop through converting each list into a row of the new array 
for ii in xrange(nparr.shape[0]): 
    nparr[ii] = dict[ii] 

# Plotting as a contour 
plt.contour(nparr) 
plt.show() 

注意,for循环不会是特别快非常大的数据集,但对于“图像大小”数据应该没问题(我希望matplotlib的渲染花费最多的时间)。