我想知道如何改变颜色条中的刻度的颜色,以及如何改变图中标题和颜色条的字体颜色。例如,很明显,在temp.png中可以看到东西,但在temp2.png中看不到:
import matplotlib.pyplot as plt
import numpy as np
from numpy.random import randn
fig = plt.figure()
data = np.clip(randn(250,250),-1,1)
cax = plt.imshow(data, interpolation='nearest')
plt.title('my random fig')
plt.colorbar()
# works fine
plt.savefig('temp.png')
# title and colorbar ticks and text hidden
plt.savefig('temp2.png', facecolor="black", edgecolor="none")
谢谢
5条答案
按热度按时间mgdq6dx11#
以前的回答没有给给予我想要的。这是我是如何做到的:
rnmwe5a22#
(更新:此答案中的信息已过时,请滚动下方以获取最新且更适合新版本的其他答案)
这可以通过在matplotlib中检查和设置对象处理程序的属性来完成。
我编辑了你的代码,并在注解中做了一些解释:
l5tcr1uw3#
虽然其他答案肯定是正确的,但似乎使用样式或特定的
rcParams
或使用tick_params
函数更容易解决这个问题样式
Matplotlib提供了一个
dark_background
样式。你可以通过plt.style.use("dark_background")
使用它:或者,如果您需要创建具有和不具有黑色背景的相同图形,则可以在上下文中使用样式。
在Customizing matplotlib教程中阅读更多关于此的内容。
具体rcParams
您可以单独设置所需的rcParams,这些rcParams构成脚本中需要的样式。
例如,使任何文本为蓝色,yticks为红色:
这也将自动着色刻度线。
自定义刻度和标签
您也可以单独自定义图中的对象。对于tick和ticklabels,有一个
tick_params
方法。例如,仅将颜色条的tick变为红色,jbose2ul4#
基于前面的答案,我添加了两行来设置colorbar的框颜色和colorbar的ticks颜色:
dvtswwa35#
此外,您可以使用以下命令更改记号标签: