matplotlib:更改标题和颜色栏文本以及刻度颜色 - python

我想知道如何更改颜色栏中刻度线的颜色,以及如何更改图形中标题和颜色栏的字体颜色。例如,事情显然在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")

谢谢

参考方案

这可以通过在matplotlib中检查和设置对象处理程序的属性来完成。

我编辑了您的代码,并在注释中添加了一些说明:

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')

title_obj = plt.title('my random fig') #get the title property handler
plt.getp(title_obj)                    #print out the properties of title
plt.getp(title_obj, 'text')            #print out the 'text' property for title
plt.setp(title_obj, color='r')         #set the color of title to red

axes_obj = plt.getp(cax,'axes')                 #get the axes' property handler
ytl_obj = plt.getp(axes_obj, 'yticklabels')     #get the properties for 
                                                #  yticklabels
plt.getp(ytl_obj)                               #print out a list of properties
                                                #  for yticklabels
plt.setp(ytl_obj, color="r")                    #set the color of yticks to red

plt.setp(plt.getp(axes_obj, 'xticklabels'), color='r') #xticklabels: same

color_bar = plt.colorbar()                            #this one is a little bit
cbytick_obj = plt.getp(color_bar.ax.axes, 'yticklabels')                #tricky
plt.setp(cbytick_obj, color='r')

plt.savefig('temp.png')
plt.savefig('temp2.png', facecolor="black", edgecolor="none")

Matplotlib'粗体'字体 - python

跟随this example:import numpy as np import matplotlib.pyplot as plt fig = plt.figure() for i, label in enumerate(('A', 'B', 'C', 'D')): ax = f…

matplotlib中的文本部分着色 - python

matplotlib中是否可以部分指定字符串的颜色?例:plt.ylabel("Today is cloudy.") 如何将“今天”显示为红色,“是”显示为绿色和“多云”。如蓝色?谢谢。 参考方案 我只知道如何非交互地执行此操作,即使那样也只能使用“PS”后端。为此,我将使用Latex设置文本格式。然后,我将包含“颜色”包,并根据需要设置…

Matplotlib-固定x轴缩放比例和自动缩放y轴 - python

我只想绘制部分数组,固定x部分,但让y部分自动缩放。我尝试如下所示,但是它不起作用。有什么建议么?import numpy as np import matplotlib.pyplot as plt data=[np.arange(0,101,1),300-0.1*np.arange(0,101,1)] plt.figure() plt.scatter(da…

在matplotlib中自动调整图形大小 - python

有没有一种方法可以自动调整图形的大小以正确适合matplotlib / pylab图像中包含的图形?我正在根据所使用的数据创建纵横比不同的热图(子)图。我知道我可以计算出宽高比并手动设置它,但是肯定有更简单的方法吗? 参考方案 使用 bbox_inches ='tight'import numpy as np import matplotlib.pyplot…

Matplotlib:保存图形时白色边距和隐藏轴 - python

我一直在尝试保存用matplotlib制作的图,但遇到了一些问题:不仅遇到了常见的白色边距问题(我在网上找到了一些解决方案),而且看来我的坐标轴和标签都在当我保存图像时,它们消失了,尽管当我要求Python show()结果时它们看起来很好。这是MWE,是我用show()得到的结果的打印屏幕(这是我想要的结果),以及将图形保存到.png时得到的结果(我相信白…