我希望根据某些条件更改热图中 ticklabels
的颜色。例如下面的例子,我想将包含 A
的 ticklabels
的颜色更改为 red
和 B
为 绿色
。
我尝试创建一个列表['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()
最佳答案
您可以在标签文本对象上使用 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')
当然,这并不能解决如果标签中同时存在 A
和 B
时会发生的情况(即 ABC
应该为红色)或绿色)?
关于python - 在 Python (matplotlib) 中更改热图标签的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33434681/