【发布时间】:2021-08-13 19:45:48
【问题描述】:
我有一个 CSV 数据文件,其中包含(简化)形式的数据:
1.2, 2.2, o, s
1.7, s, 2.4, 2.9
o, 0.9, 0.1, NaN
1.4, s, 0.5, 0.9
注意:这包含字符“o”,而不是数字零 (0)。该文件与表示不同类型的“失败”测量的字符混合在一起。这些矩阵通常比 4x4 网格大得多。
我想使用 matplotlib 在颜色图上绘制这些矩阵,但每个失败的测量值在图上分配了自己的颜色,同时保留合法数据的颜色范围。
具有逻辑的东西,例如 `
if data == 'o':
pixel_colour = 'red'
if data == 's':
pixel_colour = 'black'
if data == 'NaN':
pixel_colour = 'white'
` 我已经看过这篇有用的帖子 (Changing colours of pixels of plt.imshow() image.),但我想不出如何让它处理异构数据类型。
【问题讨论】:
-
你只有o和s吗?还是有更多类别?
-
现在,只有 'o' 和 's'。在这种情况下,NaN 表示缺失的数据,我应该指定它。
-
不是您问题的答案,但您可能只想在颜色图中使用“上”和“下”颜色:stackoverflow.com/questions/11386054/…
-
要回答您的问题,您始终可以将 rgbA 数组传递给 imshow,它只会使用这些值。
-
感谢分享!这是有道理的,但我认为问题在于将大量数字分配给 's' 会偏离彩色地图的比例。此外,这仅对 2 种不同类型的“失败”测量有用。我们有 3 个,未来可能还会有更多。不过再次感谢!
标签: python matplotlib colormap