Matplotlib-设置标题(三)

对于一幅图来说,标题不可或缺。它能让人直观地了解到图想表达的主旨。本期内容将对标题的设置进行介绍,包含了标题的字体大小、颜色、位置、中文字符等内容。

先直接上代码,如下:

#-*- 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调整子图间的距离,在这里只需要适当增大子图纵向间的间距即可。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180703G163LR00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券