image_annotated_heatmap
创建带注释的热度图
通常希望将依赖于两个独立变量的数据显示为彩色编码图像图。这通常被称为热度图。如果数据是分类的,则称为分类热度图。Matplotlib的imshow功能使得这种图的制作特别容易。
以下示例显示如何使用注释创建热图 我们将从一个简单的示例开始,并将其扩展为可用作通用功能。
一种简单的分类热度图
我们可以从定义一些数据开始。我们需要的是一个二维列表或数组,它定义了颜色代码的数据。然后,我们还需要类别的两个列表或数组;当然,这些列表中的元素数量需要沿着各自的轴匹配数据。热度图本身是一个 imshow 图,其标签设置为我们所拥有的类别。请注意,重要的是同时设置刻度位置(Set_Xticks)和刻度标签(set_xtick标签),否则它们将变得不同步。位置只是升序整数,而节拍标签则是要显示的标签。最后,我们可以通过在每个单元格内创建一个文本来标记数据本身,以显示该单元格的值。
1 | import numpy as np |

使用辅助函数的编码风格
正如在编码风格中所讨论的,人们可能希望重用这样的代码,为不同的输入数据和/或不同的轴创建某种热映射。我们创建了一个函数,该函数接受数据以及行和列标签作为输入,并允许用于自定义绘图的参数。
在这里,除了上面的内容之外,我们还想创建一个颜色条,并将标签放在热图的上面而不是下面。注释应根据阈值获得不同的颜色,以便与像素颜色形成更好的对比度。最后,我们关闭周围的轴刺,创建一个白线网格来分隔细胞。
1 | def heatmap(data, row_labels, col_labels, ax=None, |
以上所述使我们能够保持实际的绘制创作非常紧凑。
1 | fig, ax = plt.subplots() |

一些更复杂的热度图示例
在下面的文章中,我们将通过在不同的情况下使用不同的参数来展示前面创建的函数的多样性。
1 | np.random.seed(19680801) |

参考
下面的示例显示了以下函数和方法的用法:
1 | matplotlib.axes.Axes.imshow |
下载这个示例
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Estom的博客!










