【问题标题】:How to reverse colorscales in seaborn heatmap如何在 seaborn 热图中反转色阶
【发布时间】:2017-07-19 13:51:07
【问题描述】:

对于不同的值,seaborn 默认情况下似乎在暖色调(橙色)中显示大数字,在冷色调(蓝色)中显示小数字。

如果我需要将颜色切换为相反,以蓝色显示大数字,以橙色显示小数字,该怎么做?

我已经搜索过,但没有找到方法。

sns.heatmap(flights, center=flights.loc["January", 1955])

【问题讨论】:

  • 找到数据的最大值,然后从最大值中减去每个元素,得到倒置的值并类似地绘制
  • 发布一个可重现的例子。我对你在下面所做的事情进行了抨击。但这只是一个猜测,因为我无法读懂你的想法。

标签: python plot colors heatmap seaborn


【解决方案1】:

您可以通过将 _r 附加到名称来反转所有 matplotlib 颜色图,即 plt.cm.coolwarmplt.cm.coolwarm_r

我相信 seaborn 默认使用 cubehelix 颜色图。

所以你会这样做:

from matplotlib import pyplot
import seaborn as sns

colormap = pyplot.cm.cubehelix_r
flights = sns.load_dataset('flights').pivot("month", "year", "passengers")
sns.heatmap(flights, cmap=colormap)

【讨论】:

  • 你不需要传递颜色图对象;一个字符串也可以。
  • 太棒了!谢谢。不错的提示。 cmap="magma_r 即为我工作。
【解决方案2】:

无需为热图构建单独的反向函数。

只需使用 cmap = 'magma_r'。默认设置是岩浆,因此我们只需附加“_r”即可。

【讨论】:

    猜你喜欢
    • 2018-05-09
    • 2018-05-07
    • 1970-01-01
    • 2021-01-01
    • 2021-04-14
    • 2022-07-13
    • 1970-01-01
    • 2020-12-16
    • 1970-01-01
    相关资源
    最近更新 更多