Make a 2D pixel plot with matplotlib

前端 未结 1 1968
醉酒成梦
醉酒成梦 2020-12-01 04:05

I got the following data from some calculations:

x, y, temp

where x and y are the coordinates of a point in a 2D box of dimensions 10x10.

相关标签:
1条回答
  • 2020-12-01 04:13

    Based on the way it looks like your x,y,temp triples are ordered (listed out in rows), you can just reshape the "temp" column.

    E.g.

    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib.cm as cm
    
    x,y,temp = np.loadtxt('data.txt').T #Transposed for easier unpacking
    nrows, ncols = 100, 100
    grid = temp.reshape((nrows, ncols))
    
    plt.imshow(grid, extent=(x.min(), x.max(), y.max(), y.min()),
               interpolation='nearest', cmap=cm.gist_rainbow)
    plt.show()
    

    hsv is the "rainbow" colormap you were referring to. Edit: You probably actually wanted matplotlib.cm.gist_rainbow. matplotlib.cm.hsv goes back to red at the bottom. See here: https://matplotlib.org/users/colormaps.html for a list of colormaps.

    If your x,y,temp triplets aren't actually ordered, then you'll need to regrid your points. I showed an example of this in my answer to your previous question.

    enter image description here

    0 讨论(0)
提交回复
热议问题