【问题标题】:Make a 2D pixel plot with matplotlib使用 matplotlib 制作 2D 像素图
【发布时间】:2011-06-12 18:28:06
【问题描述】:

我从一些计算中得到了以下数据:

x, y, temp

其中 x 和 y 是尺寸为 10x10 的 2D 盒子中的点的坐标。间距等于 0.1。所以有 10000 个不同的点,生成的文件如下所示:

0.0 0.0 5.6
0.1 0.0 3.2
0.2 0.0 4.1
...
9.9 9.9 2.1

我想用 matplotlib 准备一种 2D 图,像素为 100x100,其中每个像素都有一种颜色(彩虹色从红色到紫色,从第三列的最小值到最大值)第三列的值,并从此文件中读取数据。我想知道使用 matplotlib 的最佳方法是什么

【问题讨论】:

    标签: python grid matplotlib plot pixel


    【解决方案1】:

    根据 x,y,temp 三元组的排序方式(按行列出),您可以重新调整“temp”列的形状。

    例如

    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 是您所指的“彩虹”颜色图。 编辑:您可能实际上想要matplotlib.cm.gist_rainbow。 matplotlib.cm.hsv 在底部变回红色。请参阅此处:https://matplotlib.org/users/colormaps.html 获取颜色图列表。

    如果您的 x,y,temp 三元组实际上没有排序,那么您需要重新计算您的分数。我在my answer 中为您之前的问题展示了一个示例。

    【讨论】:

    猜你喜欢
    • 2016-01-21
    • 2018-11-02
    • 2017-08-26
    • 1970-01-01
    • 2013-07-22
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    相关资源
    最近更新 更多