对于一幅图来说,标题不可或缺。它能让人直观地了解到图想表达的主旨。本期内容将对标题的设置进行介绍,包含了标题的字体大小、颜色、位置、中文字符等内容。
先直接上代码,如下:
#-*- coding: utf-8 -*-
importmatplotlib.pyplotasplt
fig=plt.figure()
plt.suptitle('Setting Title',fontsize=16)
axes1=plt.subplot(221)
plt.title('subplot 1',color='blue',fontweight=800)
axes2=plt.subplot(222)
axes2.set_title('subplot 2',loc='right',fontstyle='italic')
axes3=plt.subplot(223)
axes3.set_title('subplot 3',rotation=30)
axes4=plt.subplot(224)
axes4.set_title(u'子图 4',fontproperties="Microsoft YaHei")
plt.subplots_adjust(hspace=0.3)
plt.show()
程序运行的结果如图所示,对每个子图的标题采用了不同的设置方式,下面将逐一说明。
总图标题的设置
数据可视化时如果一张图里包含有多个子图,除了子图的标题外,还需要对总图的标题进行设置。
设置总图的标题采用plt.suptitle(),括号里的第一个参数为字符串,即总图标题的内容。
采用关键字参数fontsize,对总图标题的字体大小进行设置,由默认大小改为16。
对标题字体大小的设置方法同样适用于任何子图,目前的例子中所有子图标题均为默认大小。
子图1
在子图1中,我们仅对字体的颜色和字体的粗细进行更改。采用关键字参数color将标题颜色设置为蓝色,采用fontweight更改了标题字体的粗细,为方便对比,其他标题字体粗细均为默认设置。
color可以接受matplotlib中任何已经定义的颜色,fontweight可以接受0~1000的任意数值,或者是以下任意字符串:
‘ultralight’,‘light’, ‘normal’ ,‘regular’,‘book’, ‘medium’, ‘roman’ , ‘semibold’, ‘demibold’,‘demi’,‘bold’, ‘heavy’, ‘extra bold’, ‘black’
子图2
在子图2中,我们将标题移动到了右侧的位置,并将标题字体改成了斜体。
其中改变位置的关键字参数loc可以接受的字符串为‘center’, ‘left’, ‘right’,默认为居中设置。也可以通过设置参数x、y的大小,相应改变标题在图中水平和竖直方向上的位置。
字体样式fontstye可以接受 ‘normal’, ‘italic’ , ‘oblique’。
子图3
子图3中,我们仅对标题进行了旋转,通过参数rotation将标题逆时针旋转了30°,若想顺时针旋转,将该参数相应设置成负值即可。
子图4
子图4主要介绍中文标题的设置方法,由于编码问题,在出现中文字符时,首先需要在程序开始时进行一行编码声明(上述代码第1行)。
然而这只能保证程序正常运行,子图4的标题仍然无法正常显示。此时需要对中文字体进行设置,采用fontproperties将中文字体设置为微软雅黑后,显示正常。
当然也可以选择中文字体为黑体(SimHei)、楷体(KaiTi)、仿宋(FangSong)、华文彩云(STCaiyun)等其他字体。
最后将全部子图的标题设置完成后,你会发现由于第一、二行子图之间由于间距过小导致子图3、4的标题与子图1、2有所重叠。
因此需要进行额外的设置,即通过plt.subplots_adjust调整子图间的距离,在这里只需要适当增大子图纵向间的间距即可。
领取专属 10元无门槛券
私享最新 技术干货