【发布时间】:2020-06-27 23:54:09
【问题描述】:
我有一个 fortran 程序,它可以模拟空气中的某种辐射以及在地面的每个天线中获得的信号。我正在使用 Python3 读取输出数据,其中一个输出 .dat 文件包含有关天线的信息,它按列组织(沿 X 轴的位置、沿 Y 轴的位置、信号检测到等)。
假设我有 ~ 1000000 个天线,并且我已经将每个天线的位置和信号存储在列表column_x、column_y、signal 中,我的目标是重现如下图:
我该怎么做?
我尝试制作一个形状为(len(column_x),len(column_y)) 的矩阵,将列表signal 的值插入天线的每个位置,并用plt.pcolor 绘制该矩阵,但我遇到了很多问题。一定有最简单的方法。
【问题讨论】:
-
除非位置是离散化的(即整数值),否则您必须创建一个常规网格并将数据重新采样到该网格才能使用
pcolor(或pcolormesh,pcolorfast, 等等)。如果它们没有离散化,则可以选择散点图。如果您主要关心的是高密度区域,您可以创建一个有效突出它们的散点图 - 特别是通过使用半透明标记(通过在plt.scatter中传递alpha < 1.0) -
除了散点图,tricontourf 也很有趣。它可以接受 x、y 和 z(信号)位置列表,并根据信号创建 2D 区域(轮廓)。 (x 和 y 不需要组织成一个网格)
标签: python python-3.x matplotlib data-visualization colormap