目录
一、前言
说到布局,除了坐标轴、标题的位置和大小,还有就是子图的摆放。之前说了通过subplot和subplots都能添加子图,但是未曾详细说明,第三篇就是专门讲子图的设置与技巧。
先把所需要的库导入
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
二、子图
2.1plt.subplots绘制均匀状态下的子图
2.1.1subplots()参数
matplotlib.pyplot.subplots(
nrows=1, ncols=1, sharex=False, sharey=False,
squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)
fig,ax= plt.subplots()
输入参数说明:
nrows,ncols:整型,可选参数,默认为1。表示子图网格(grid)的行数与列数。
sharex,sharey:布尔值或者{'none','all','row','col'},默认:False
控制x(sharex)或y(sharey)轴之间的属性共享:
1.True或者'all':x或y轴属性将在所有子图(subplots)中共享.
2.False或'none':每个子图的x或y轴都是独立的部分
3.'row':每个子图在一个x或y轴共享行(row)
4.'col':每个子图在一个x或y轴共享列(column)
当子图在x轴有一个共享列时('col'),只有底部子图的x tick标记是可视的。
同理,当子图在y轴有一个共享行时('row'),只有第一列子图的y tick标记是可视的。
squeeze:布尔类型,可选参数,默认:True。
* 如果是True,额外的维度从返回的Axes(轴)对象中挤出。
如果只有一个子图被构建(nrows=ncols=1),结果是单个Axes对象作为标量被返回。
对于N*1或1*N个子图,返回一个1维数组。
对于N*M,N>1和M>1返回一个2维数组。
*如果是False,不进行挤压操作:返回一个元素为Axes实例的2维数组,即使它最终是1x1。
subplot_kw:字典类型,可选参数。把字典的关键字传递给add_subplot()来创建每个子图。
gridspec_kw字典类型,可选参数。把字典的关键字传递给GridSpec构造函数创建子图放在网格里(grid)。
**fig_kw:把所有详细的关键字参数传给figure()函数
返回结果:
fig:matplotlib.figure.Figure对象
ax:Axes(轴)对象或Axes(轴)对象数组。
2.1.2figure()参数说明
matplotlib.pyplot.figure(
num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None,
frameon=True, FigureClass=<class 'matplotlib.figure.Figure'>,
clear=False, **kwargs)
创建一个新的画布(figure)。
输入参数:
num:整型或者字符串,可选参数,默认:None。
如果不提供该参数,一个新的画布(figure)将被创建而且画布数量将会增加。
如果提供该参数,带有id的画布是已经存在的,激活该画布并返回该画布的引用。
如果这个画布不存在,创建并返回画布实例。
如果num是字符串,窗口标题将被设置为该图的数字。
figsize:整型元组,可选参数 ,默认:None。
每英寸的宽度和高度。如果不提供,默认值是figure.figsize。
dpi:整型,可选参数,默认:None。每英寸像素点。如果不提供,默认是figure.dpi。
facecolor:背景色。如果不提供,默认值:figure.facecolor。
edgecolor:边界颜色。如果不提供,默认值:figure.edgecolor。
framemon:布尔类型,可选参数,默认值:True。如果是False,禁止绘制画图框。
FigureClass:源于matplotlib.figure.Figure的类。(可选)使用自定义图实例。
clear:布尔类型,可选参数,