python - 在 Python (matplotlib) 中更改热图标签的颜色

标签 python matplotlib

我希望根据某些条件更改热图中 ticklabels 的颜色。例如下面的例子,我想将包含 Aticklabels 的颜色更改为 redB绿色

我尝试创建一个列表['red', 'green', 'red', 'green']并将其传递给颜色选项,但到目前为止没有成功。任何帮助都会很棒。

import numpy as np
import matplotlib.pyplot as plt

alpha = ['ABC', 'BDF', 'ADF', 'BCF']

data = np.random.random((4,4))

fig = plt.figure()
ax = fig.add_subplot(111)
cax = ax.matshow(data, interpolation='nearest')
fig.colorbar(cax)

ax.set_xticklabels(['']+alpha)
ax.set_yticklabels(['']+alpha)

plt.show()

enter image description here

最佳答案

您可以在标签文本对象上使用 set_color 设置文本颜色:

for l in ax.xaxis.get_ticklabels()+ax.yaxis.get_ticklabels():
    if 'A' in l.get_text():
        l.set_color('r')
    elif 'B' in l.get_text():
        l.set_color('g')

enter image description here

当然,这并不能解决如果标签中同时存在 AB 时会发生的情况(即 ABC 应该为红色)或绿色)?

关于python - 在 Python (matplotlib) 中更改热图标签的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33434681/

相关文章:

python - 在 Seaborn JointGrid KDE 边缘图上重新缩放轴

python - order = 'F' 的 numpy.reshape() 如何工作?

python - 如何在字符串(python、perl)中找到表情符号、unicode 字符和表情符号的文本描述?

python - find_elements_by_css_selector 没有给我任何输出,如何处理?

python - 如何在散点图中按所需顺序对 y 轴进行排序?

python - 有什么方法可以将 seaborn 中的颜色条 (cbar) 更改为图例(对于二进制热图)?

python - 为什么 glob 会忽略某些目录?

python - 如何更改图像的像素值?

python - Jupyter:如何在单击按钮时更新绘图(ipywidgets)

python - 如何使用 matplotlib 紧密布局与 Figure?