Matplotlib绘图布局

        对于初步接触matplotlib绘图库的朋友来说,绘图的字体设置、轴标签设置、图例和标题是令人头疼的问题,但作为绘图的基础设置,我们有必要熟悉掌握。笔者根据以往的绘图经验,对以上几个方面进行总结。

        主要内容有:画布大小设置、字体设置、轴标签设置、图例设置、标题设置

一、画布大小设定

python设置画布语法为(常用参数):

plt.figure(figsize = None, dpi = None, facecolor = None, edgecolor = None, frameon = True)

figsize:画布的宽和高,单位为英寸。例如figsize = (8, 6),生成8英寸宽,6英寸高的画布

dpi:画布分辨率。表示的是每英寸点数(1英寸≈2.54cm),默认即可,笔者习惯调至100

facecolor:背景颜色edgecolor:边框颜色

frameon:是否显示边框下图展示了生成画布为4英寸×3英寸,分辨率为100,背景色为'mistyrose'的图像。一般来说,前两个参数最常用。

import matplotlib.pyplot as plt

plt.figure(figsize = (4, 3), dpi = 100, facecolor = 'mistyrose')

plt.plot([1, 2, 3], [1, 2, 3])

在这里插入图片描述
下图是常用的颜色对照表,也可以使用十六进制颜色在这里插入图片描述

二、字体设置

        在默认情况下,matplotlib是不支持中文格式的。例如下面代码:

plt.figure(figsize = (4, 3))

plt.plot([1, 2, 3], [1, 2, 3])

plt.title('测试图')

plt.show()

在这里插入图片描述

        一般而言,我们可以在开头设置字体样式:

importmatplotlib.pyplot as plt

import matplotlib as mpl 

mpl.rcParams['font.sans-serif'] = ['FangSong']#设置默认字体样式

plt.figure(figsize = (4,3))

plt.plot([1,2,3], [1,2,3])

plt.title('测试图')

在这里插入图片描述

        但是,一般而言作图我们要求数字为Times New Roman,而文字为宋体等。我们可以保持默认字体样式,新建字体样式,在添加中文字体时调用新建的字体样式,其余的保持默认样式。新建字体样式代码如下:

import matplotlib.pyplot as plt

import matplotlib as mpl

mpl.rcParams['font.sans-serif']=['Times New Roman']#设置默认样式为新罗马

font1= {'family':'Times New Roman','weight':'normal','size':20,'style':'italic',}#新建字体样式1,设置字体为新罗马,大小为20号,斜体

font2= {'family':'simsun','weight':'normal','size':15,'style':'italic',}#新建字体样式2,设置字体为宋体,大小为15号,斜体

plt.figure(figsize= (4,3))

plt.plot([1, 2, 3],[1, 2, 3])#轴标签仍然使用默认样式

plt.title('测试图', font2)#添加标题,利用2号样式

在这里插入图片描述

        一般支持的字体有:Times New Roman;SimHei(黑体);Microsoft YaHei(微软雅黑);simsun(宋体),这些基本上能满足制图应用。

三、轴标签设置

        以2015年全国各气象站点的pm2.5与模型预测的pm2.5浓度为例,选取前100个数据制作散点图。

在这里插入图片描述

import matplotlib.pyplot as plt

import matplotlib as mp

lrel_pm2_5= data['pm2_5'][:100]#读取前100个真实值

pred_pm2_5= data['pred_pm2_5'][:100]#读取前100个预测值

plt.scatter(rel_pm2_5, pred_pm2_5,color='k', s =10, label ='scatter figure')#scatter语法以后会说,color为散点颜色,s代表散点大小,label表示图例显示的文字

plt.legend()

在这里插入图片描述

        现需要将x轴坐标以间隔100进行设置,y轴也以100进行设置,并设置字体大小为15。x轴标签添加文字“观测值”,y轴标签添加文字“预测值”,使用宋体18号。

mpl.rcParams['font.sans-serif']=['Times New Roman']#设置默认字体

font1= {'family':'simsun','weight':'normal','size':18,'style':'italic'}#自定义字体样式

rel_pm2_5= data['pm2_5'][:100]

pred_pm2_5= data['pred_pm2_5'][:100]

plt.scatter(rel_pm2_5, pred_pm2_5,color='k', s =10, label ='scatter figure')

plt.xlim(0, 400)#设置x坐标的范围

plt.ylim(0, 400)

plt.xticks(range(0, 401, 100),size=15)#设置x轴刻度字体大小和刻度,字体采用默认,刻度为[0, 100, 200, 300, 400]

plt.yticks(range(0, 401, 100),size=15)

plt.xlabel('观测值', font1)#设置x轴标签,字体采用1号样式

plt.ylabel('预测值', font1)

plt.show()

在这里插入图片描述

        现需要将刻度[0, 100, 200, 300, 400]分别换为[A, B, C, D, E],仅需改动一句代码: plt.xticks(range(0, 401, 100), ['A', 'B', 'C', 'D', 'E'], size=15)

在这里插入图片描述

        图例语法为:plt.legend(loc, bbox_to_anchor, ncol, title, shadow, fancybox, prop)

        loc:位置参数,1表示右上,2表示左上,3表示左下,4表示右下,5表示右中,6表示左中,7表示右中(和5一样),8表示中下,9表示中上,10表示中部。(非必选参数,默认为最佳位置,示例:loc = 1)bbox_to_anchor:表示图例线框所在位置,bbox_to_anchor = (0.05, 0.95)表示把图例左上角对应坐标为(0.05x轴长度,0.95y轴长度)。(非必选参数)

        ncol:图例每行容纳的图例数。例如一个图中有多个线,就会有多个图例。(非必选参数,示例:ncol = 3)

        title:图例标题。(非必选参数)

        fancybox:值为True或False,图例边框显示圆角式还是直角,默认True。(非必选参数,示例:fancybox = True)

        prop:可以设置字体。例如:prop = {'family': 'Times New Roman', 'size': 14}表示字体为新罗马,大小为14。如果仅仅只设置字体大小,可以不用prop,直接用fontsize = 15即可。(非必选参数)

plt.legend(loc = 4, fontsize = 15) #设置位置为右下,字体为15号

在这里插入图片描述

五、标题设置

plt.title('散点图', font1)

在这里插入图片描述

        可以看出标题设置成了1号样式指定的字体,我们也可以建立其他字体来设置不同的效果。

总结

        本文总结了Matplotlib绘图的基本操作:画布大小设置、字体设置、轴标签设置、图例设置和标题设置。作为可视化的基本组成元素,我们需要熟练这些操作,加快可视化学习效率,美化我们的图像。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

辣椒种子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值