How to do colored 2D grid with 3 arrays

前端 未结 1 1620
遥遥无期
遥遥无期 2020-12-21 21:40

I have three arrays of equal length x, y, and z. The x and y arrays are the x-axis and y-axis for the grid. The z array will determine the color of the the grid block. For e

相关标签:
1条回答
  • 2020-12-21 21:57

    np.meshgrid returns a tuple of two 2D arrays, which you can unpack directly

    X,Y = np.meshgrid(x,y)
    

    However, you don't need to those for an imshow plot. What you need and what you lack in your code is the 2D array of z values. This would be the array to provide to imshow.

    img = plt.imshow(Z)
    

    If you want to use meshgrid instead, you can use your X and Y values,

    plt.pcolormesh(X,Y,Z)
    

    Seeing the example data, you can use imshow:

    x = [10, 10, 10, 20, 20, 20, 30, 30, 30]
    y = [10, 20, 30, 10, 20, 30, 10, 20, 30]
    z = [100, 54, 32, 67, 71, 88, 100, 15, 29]
    
    import matplotlib.pyplot as plt
    import numpy as np
    
    z = np.array(z).reshape(3,3)
    
    plt.imshow(z,extent=[5,35,5,35])
    
    plt.show()
    

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