Python--matplotlib(持续更新)

这篇具有很好参考价值的文章主要介绍了Python--matplotlib(持续更新)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

    Matplotlib,全称“Matlab plotting library”,是Python中的一个库,它是数字的-NumPy库的数学扩展,是Python中绘制二维和三维图表的数据可视化工具
    Matplotlib的绘画接口分为三种:pyplot,面向当前图;axes,面向对象;Pylab,沿用 matlab 风格。
    Matplotlib中的所有内容都按层次结构组织,层次结构的顶部是由matplotlib提供的matplotlb“状态机环境”——pyplot模块,仅用于图形创建等少数功能,用户显式创建并跟踪图形和轴对象。
    层次结构的下一层是面向对象界面的第一层,在此级别,使用pyplot创建图形,通过这些图形可以创建一个或多个轴对象,使用基础函数将绘图元素(线条、图像、文本等)添加到当前图形中的当前轴。


 

准备

格式调整 & 自定义设置

# 导入matplotlib库中的pyplot
import matplotlib as mpl
import matplotlib.pyplot as plt

# 解决中文乱码,可自行修改期望字体
plt.rcParams['font.sans-serif']='SimHei'
mpl.rcParams['font.family']=[Heiti SC]

# 解决负号无法显示的问题
plt.rcParams['axes.unicode_minus']=False

# 将图表以矢量图格式显示,提高清晰度
%config InlineBackend.figure_format = 'svg'

# 提高dpi,以提高图片清晰度(dpi到三百以上,效果会明显变化)
# 也可在设置figure时设置dpi
mpl.rcParams['figure.dpi']=300

# 获取figure尺寸,默认6.4 inch,4.8 inch
plt.rcParams.get('figure.figsize')
# 全局设置输出图片大小的宽m和高n
plt.rcParams['figure.figsize']=(m,n)

# 获取字体大小,默认10.0 & 设置字体大小为k
plt.rcParams.get('font.size')
plt.rcParams['font.size']=k

# 图画面板调整为白色
rc={'axes.facecolor':'white','savefig.facecolor':'white'}
mpl.rcParams.update(rc) #一次更新多个值

# 允许输出数学公式
mpl.rcParams['text.usetex']=True

# Figure自动调整格式
plt.rcParams['figure.constrained_layout.use']=True

# 隐藏坐标系,二维三维均可
plt.axis('off')

# 三维坐标轴比例伸缩
ax.get_proj = lambda: np.dot(Axes3D.get_proj(ax), np.diag([1, 1, 2, 2]))

# 去除白边
# bbox_inches = 'tight' 可去除部分白边
# pad_inches 可正可负,减小时会放大图片在画布上的占比,以达到减少白边的效果
savefig(bbox_inches = 'tight',pad_inches = -1.7)

 

一.pyplot基础函数

(一)后端资源管理

1.内存或显示处理

1.1 matplotlib.pyplot.show()

显示当前figure对象

jupyter notebook中,不使用show()函数也可以正常运行,会显示图片的格式和图片;使用show()函数会只显示图片

可以认为大部分matplotlib函数都是在“暂存”的图片上进行处理,show()函数会把“暂存”的图片显示出去,然后就没有“暂存”图片了,故大部分操作应在show函数之前完成

 

1.2 matplotlib.pyplot.close()

关闭figure window对象,如果没有指定,则指当前figure window对象

关闭所有 figure windows
plt.close('all')

 

1.3 matplotlib.pyplot.get_fignums()

查询当前的所有图像编号
 

2.clear,get和set

2.1 matplotlib.pyplot.clf()

clf --> clean current figure --> 清除当前figure对象
清除当前 figure 中的活动的axes,但其他axes保持不变
 

2.2 matplotlib.pyplot.cla()

cla --> clean current axes --> 清除当前Axes对象
清除当前figure的所有axes,但是不关闭这个window,所以能继续复用于其他的plot。

创建太多的 figure 对象会引起警告
故推荐只创建一个 figure 对象,在画下一个图之前,使用 plt.clf() 清理掉 axes,这样可以复用 figure

 

2.3 matplotlib.pyplot.gcf()

gcf --> get current figure --> 获取当前figure对象
 

2.4 matplotlib.pyplot.gca()

gca --> get current axes --> 获取当前Axes对象
 

2.5 matplotlib.pyplot.scf(fig=fig)

scf --> set current figure --> 设置当前figure对象
 

2.6 matplotlib.pyplot.sca(ax=ax1)

sca --> set current axes --> 设置当前Axes对象
 

(二)matplotlib.pyplot提供的基本画图函数

1.plt.title(str, fontsize, fontweight, fontstyle, verticalalignment, horizontalalignment, rotation, alpha, backgroundcolor, bbox)

添加图形内容的标题
 
参数:
(1)fontsize:设置字体大小

  • 可选参数:[‘xx-small’, ‘x-small’, ‘small’, ‘medium’, ‘large’,‘x-large’, ‘xx-large’]
  • 也可以是数字,缺省为12

(2)fontweight:设置字体粗细

  • 可选参数:[‘light’, ‘normal’, ‘medium’, ‘semibold’, ‘bold’, ‘heavy’, ‘black’]

semibold:半粗体;bold:粗体

(3)fontstyle:设置字体类型

  • 可选参数:[ ‘normal’, ‘italic’, ‘oblique’ ]

italic:斜体;oblique:倾斜

(4)verticalalignment:设置水平对齐方式

  • 可选参数:[‘center’, ‘top’, ‘bottom’, ‘baseline’]

(5)horizontalalignment:设置垂直对齐方式

  • 可选参数:[‘left’, ‘right’, ‘center’]

(6)rotation:旋转角度

  • 可选参数为:[‘vertical’, ‘horizontal’]
  • 也可以是数字

(7)alpha:透明度,参数值0至1之间
(8)backgroundcolor:标题背景颜色
(9)bbox:给标题增加外框,包含参数:

  • boxstyle:方框外形
  • facecolor:简写fc背景颜色
  • edgecolor:简写ec,边框线条颜色
  • edgewidth:边框线条大小
     

2.plt.xlim(xmin, xmax),plt.ylim()

设置 x,y 轴的数值显示范围
 
参数:
xmin,xmax:x轴上的最小值和最大值

 

3.plt.xlabel(str, fontsize, fontweight, fontstyle, verticalalignment, horizontalalignment, rotation, alpha, backgroundcolor, bbox),plt.ylabel()

设置x,y轴的标签文本
 
参数:
(1)fontsize:同上
(2)fontweight:同上
(3)fontstyle:同上
(4)verticalalignment:距离坐标轴的位置

  • 可选参数:[‘center’, ‘top’, ‘bottom’, ‘baseline’]

(5)horizontalalignment:同上
(6)rotation:同上
(7)alpha:同上
(8)backgroundcolor:同上
(9)bbox:同上

 

4.plt.grid(ls, color)

绘制刻度线的辅助网格线
 
参数:
(1)ls:linestyle,线型
(2)color:颜色

 

5.plt.axhline(y, xmin, xmax, c, ls, lw, label),plt.axhline(x, ymin, ymax, c, ls, lw, label)

绘制平行于x轴额度水平参考线 / 绘制垂直于x轴额度竖直参考线
 
参数:
(1)y:水平参考线的出发点,缺省为0
(2)xmin:参考线的起始位置,缺省为0
(2)xmax:参考线的终止位置,缺省为1
(2)c:color,颜色
(3)ls:linestyle,线型
(4)lw:linewidth,线宽
(5)label:标签

 

6.plt.axhspan(ymin, ymax ,facecolor, alpha),plt.axvspan(xmin, xmax ,facecolor, alpha)

绘制平行于x轴的参考区域 / 绘制垂直于x轴的参考区域
 
参数:
(1)ymin:参考区域的起始位置
(2)ymax:参考区域的终止位置
(3)facecolor:参考区域的填充颜色
(4)alpha:参考区域填充颜色的透明度,[0~1]

 

7.plt.xticks(),plt.yticks()

获取或设置当前x轴或y轴刻度位置和标签。可以理解为设置xilim和ylim一样的效果,但可以指定范围和距离
 

8.plt.annotate()

添加图形内容细节的指向型注释文本

9.plt.bbox()

给标题增加外框

10.plt.text() / axes.text()

添加图形内容细节的无指向型注释文本(水印)

11.plt.legend()

标示不同图形的文本标签图例

12.plt.table()

向子图中添加表格


 

二.Figure,Axes与Axis

图解


Python--matplotlib(持续更新)

Python--matplotlib(持续更新)

  1. 一个Figure(图形)对象可以有任何数量的Axes(轴域,一套坐标轴)对象,但为了有用,至少应该有一个
  2. 一个Axes对象包含两个Axis(轴)对象(如果是三维就是三个)

Figure是最大的一个Aritist,它包括整幅图像的所有元素,一个Figure中的各个部分的artists元素如下图所示:
figure中所有的元素类型的artist的属性都可以用ax.set_XXX()和ax.get_XXX()来设置和获取。
Python--matplotlib(持续更新)
 

(一)

1.元素Artist

有的绘图元素的基类,包含所有在figure中可以被看到的都是一个个artist。当一个figure被渲染的时候,所有的artists都被画在画布canvas上。
Python--matplotlib(持续更新)

2.matplotlib.pyplot.figure(num, figsize, dpi, facecolor, edgecolor, linewidth, frameon)

创建一个图像,实例化Figure对象,是所有绘图元素的顶层容器,相当于给图提供了一个画布
 
参数:
(1)num:图像编号或名称

  • 若为数字且存在对应id的 figure 对象,则激活对于id的figure对象
  • 若为数字且对应id的figure对象不存在,则创建它并返回它
  • 若为字符串,则将窗口标题设置为此字符串
  • 缺省,一个新的 figure 对象将被创建,同时增加 figure 的计数数值,此数值被保存在 figure 对象的一个数字属性当中,从1开始

(2)figsize:元组,指定figure的宽和高,单位为英寸,缺省为rc figure.figsize,初始(6.4,4.8)
(3)dpi:指定绘图对象的分辨率,即每英寸多少个像素,缺省值为rc figure.dpi,初始72

1英寸等于2.54cm,A4纸是 21x30cm的纸张

(4)facecolor:背景颜色,缺省为’w’
(5)edgecolor:边框颜色,缺省为’w’
(6)linewidth:边缘的线宽
(7)frameon:是否显示边框,缺省为True

figure函数的图像有“颜色”参数,后面如savefig函数也有“颜色参数”,但存储图片时只按照savefig函数的颜色参数,缺省为默认黑白

#创建一个长为10,宽为6的画布
import matplotlib.pyplot as plt
fig=plt.figure(num='pic2-1.png',figsize = (10,6),dpi=90,facecolor = 'r',edgecolor = 'y')
#没有子图的空图形

 

(二)向figure中添加axes

1.函数matplotlib.pyplot.subplot(*args, **kwargs) / matplotlib.pyplot.subplot(nrows, ncols, index, **kwargs)

此方法属于API绘图

先隐式的创建一个画布,然后再在画布上添加一个子图(如果需要多个子图,应反复调用,也可用for循环),该子图是通过均分画布得到的

子图:一个Axes对象,矩形区域,这个矩形是基于figure坐标系统定义的。

返回值:一个Axes对象,按照子图索引,按以行主顺序递增。

  1. 使用subplot() 方法创建子图将删除任何与其重叠的预先存在的子图,而不是共享边界。
  2. 当绘制的子图之间出现遮挡,subplot方法会绘制代码位置靠后的图形

 
参数:
(1)*args(位置参数):三个整数或一个三位数(自动解析成三个整数),用于分别对应 nrows,ncols,index
(1.1)nrows:在画布纵轴上分隔成几个子图,缺省为1
(1.2)ncols:在画布横轴上分隔成几个子图,缺省为1
(1.3)index:子图索引

  • 若为整数,则表示从左往右,从上到下排列的第几个图像
  • 若为元组(m,n),m,n均为整数,则表示开始位置和结束位置,形成一个包含若干子图的矩形区域,m,n在矩形的对角位置
  • 缺省为1

举例:
plt.subplot(nrows=2, ncols=3, index=5)
=plt.subplot(2, 3, 5)
=plt.subplot(235)

(2)**kwargs(可选):一些涉及子图属性的关键字参数,此方法还接受返回AXIS基类的关键字参数

这个关键字参数和坐标系axes子类的关键词差不多

(2.1)title
(2.2)xlabel,ylabel
(2.3)xlim,ylim
(2.4)frame_on
(2.5)xticks,yticks
(2.6)facecolor
(2.7)projection(关键词参数):坐标系的投影类型

  • 可能的值有:
    {None, ‘aitoff’, ‘hammer’, ‘lambert’, ‘mollweide’, ‘polar’, ‘rectilinear’, ‘3d’, str}
  • polar:绘制极线图
  • 3d:绘制3D图
  • 缺省为None,表示笛卡尔直角坐标投影
  1. str 是自定义投影的名称。
  2. 不仅可以使用系统已设计好的投影,还可以自定义一个投影变换并使用,注册并调用自定义的投影名称即可。str即自定义投影的名称。

(2.8)polar(关键词参数):布尔值,表示是否启用’polar‘的投影类型*

  • polar=True <–> projection=‘polar’
  • 缺省为False
import numpy as np
import matplotlib.pyplot as plt

# 设置数据
x = np.arange(0, 3, 0.1)
y1 = np.sin(np.pi*x)
y2 = np.cos(np.pi*x)

#创建图像
plt.figure(num='pic2-1.png',figsize = (10,6), dpi=90,facecolor = 'lightgrey', edgecolor = 'azure',linewidth=10)
# 绘制第一个子图
ax1=plt.subplot(211)  
plt.plot(x, y1)  
# 绘制第二个子图
ax2=plt.subplot(212)  
plt.plot(x, y2)

#绘制
plt.show()

Python--matplotlib(持续更新)

似乎subplot函数与show函数生成图片,第一次运行只有格式,第二次运行才出图片;有subplot函数无show函数,第一次运行没有输出,第二次运行才出图片

 

2.函数matplotlib.pyplot.subplots(nrows, ncols, sharex, sharey, squeeze, subplot_kw, gridspec_kw=None, **fig_kw)

此方法为面向对象绘图

创建一张画布和一组子图
 
返回值:一个figure和axes对象的元组,axes对象是由若干个子图ax构成的数组
 
参数:
(1)nrows:在画布纵轴上分隔成几个子图,缺省为1
(2)ncols:在画布横轴上分隔成几个子图,缺省为1
(3)sharex / sharey:是否共x或y轴,缺省为False

  • all / True:所有子图共享轴
  • none / False:各自享有自己的轴
  • row / col:按子图行或列共享x,y轴

(4)squeeze:在返回多个子图时,axes是否要压缩为1维数组,缺省为True
(5)subplot_kw:传入add_subplot函数中的参数,缺省为None
()gridspec_kw:传入网格参数,缺省为None

(6)**fig_kw:创建figure时的其他关键字,具体解释参考上面
(6.1)num
(6.2)figsize
(6.3)dpi
(6.4)facecolor
(6.5)edgecolor
(6.6)linewidth
(6.7)frameon

figure的参数加入subplots函数中,无顺序要求,不需要括号,正常逗号即可

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 2*np.pi, 400)
y = np.sin(x**2)
    
#创建图形,并创建一个子图
#面向对象语法
fig, ax = plt.subplots()
ax.plot(x, y)
plt.show()

Python--matplotlib(持续更新)

import numpy as np
import matplotlib.pyplot as pl
# 设置数据
x = np.arange(0, 3, 0.1)
y1 = np.sin(np.pi*x)
y2 = np.cos(np.pi*x)
y3 = np.sin(2*np.pi*x)
y4 = np.cos(2*np.pi*x)
#创建figure
plt.figure(figsize = (10,6), facecolor = 'r', edgecolor = 'y')
#划分子图
fig,axes=plt.subplots(2,2)
ax1=axes[0,0]
ax2=axes[0,1]
ax3=axes[1,0]
ax4=axes[1,1]
# 绘制4个子图
ax1.plot(x, y1)
ax2.plot(x, y2)
ax3.plot(x, y3)
ax4.plot(x, y4)
plt.show() 

两者对比:

subplot subplots
import matplotlib.pyplot as plt
fig = plt.figure() fig,axes=plt.subplots(2,3)
ax1 = plt.subplot(231) ax1=axes[0,0]
ax2 = plt.subplot(232) ax2=axes[0,1]
ax3 = plt.subplot(233) ax3=axes[0,2]
ax4 = plt.subplot(234) ax4=axes[1,0]
ax5 = plt.subplot(235) ax5=axes[1,1]
ax6 = plt.subplot(236) ax6=axes[1,2]

Python--matplotlib(持续更新)

似乎subplots函数有无show函数,都会直接输出格式和图片

 

3.方法matplotlib.pyplot.figure().add_subplot(nrows, ncols, index, **kwargs)

此方法为面向对象绘图

参数:
(1)nrows:在画布纵轴上分隔成几个子图,同上
(2)ncols:在画布横轴上分隔成几个子图,同上
(3)index:子图索引,同上

(4)**kwargs:一些涉及子图属性的关键字参数,同上

当绘制的子图之间出现遮挡,subplot方法会绘制代码位置靠后的图形,而add_subplot则会绘制所有图形,只是出现遮挡

4,方法matplotlib.pyplot.figure().add_axes(rect, projection, polar, sharex, sharey, **kwargs)

参数:
(1)rect(位置参数):一个4元素的浮点数列表,[left, bottom, width, height]
其定义了要添加到figure中的矩形子区域的:左下角坐标(x, y)、宽度、高度

每个元素的值是实际长度与figure对应长度的分数比值,不大于1;即将figure的宽、高作为1个单位

(2)projection(可选)(关键词参数):坐标系的投影类型,同上
(3)polar(可选)(关键词参数):表示是否启用’polar‘的投影类型,同上
(4)sharex, sharey(可选)(关键词参数):是否共x或y轴,同上

5.函数matplotlib.pyplot.subplot2grid(shape, loc, rowspan, colspan, fig, **kwargs)

参数:
(1)shape:元组,网格划分的形状
(2)loc:元组,元素数和shape一致,表示子图划分的起始位置
(3)rowspan:子图占用多少行,缺省为1
(4)colspan:子图占用多少列,缺省为1
(5)fig:缺省为None
(6)**kwargs

import matplotlib.pyplot as plt
fig = plt.figure()
fig.suptitle('Figure')
axes1 = plt.subplot2grid((3,3), (0,0), colspan=3)
axes2 = plt.subplot2grid((3,3), (1,0), colspan=2)
axes3 = plt.subplot2grid((3,3), (1,2))
axes4 = plt.subplot2grid((3,3), (2,0))
axes5 = plt.subplot2grid((3,3), (2,1), colspan=2)
plt.show()

 

(三)函数figure的方法

1.matplotlib.pyplot.figure().suptitle()

2.matplotlib.pyplot.figure().supxlabel()

3.matplotlib.pyplot.figure().supylabel()

 

(四)AxesSubplot的方法

1.

AxesSubplot.set_title(),AxesSubplot.set_xlabel(),AxesSubplot.set_ylabel(),AxesSubplot.set_xlim(),AxesSubplot.set_ylim(),AxesSubplot.remove(),AxesSubplot.set_facecolor,AxesSubplot.patch.set_alpha(),AxesSubplot.text,AxesSubplot.legend(),AxesSubplot.grid(),AxesSubplot.lines.set_label()


 

三.绘画类型

(一)基础

1.折线图matplotlib.pyplot.plot(*args,**kwargs,label) / AxesSubplot.plot()

用于画图,可以绘制点和折线线
 
参数:
(1)**args:允许传入多对x,y和format_string

plot(x1, y1, ‘str1’, x2, y2, ‘str2’)

(1.1)x(可选):X轴数据,可为(元组),[列表],numpy.array,pandas.Series,缺省为range(len(y))
(1.2)y:Y轴数据,可为(元组),[列表],numpy.array,pandas.Series

x,y可以为pd.DataFrame?

(1.3)format_string(可选):控制曲线的格式字符串
(1.3.1)c:color,颜色,详见文底《颜色表》
(1.3.2)ls:linestyle,线型

‘:’:点线;‘-.’:点画线;‘–’:短划线;‘-’:实线;'‘和’ ':无线条

(1.3.3)lw:linewidth,线宽
(1.3.4)marker:标记

‘.’:点标记;‘,’:点标记;‘o’:实心圈标记;‘v’:倒三角标记;‘^’:上三角标记;‘>’:右三角标记;‘<’:左三角标记;‘h’:竖六边形标记;‘H’:横六边形标记;‘+’:十字标记;‘+’:十字标记;‘1’:下花三角标记;‘2’:上花三角标记;‘3’:左花三角标记;‘4’:右花三角标记;’s’:实心方形标记;‘p’:实心五角标记;‘*’:星形标记;‘d’:瘦菱形标记;‘D’:菱形标记;‘|’:竖直线标记;‘_’:水平线标记

(1.3.5)markersize:标记大小
(1.3.6)markerfacecolor:标记填充色
(1.3.7)markeredgewidth:标记边缘宽度
(1.3.8)markeredgecolor:标记边缘色

以上可以使用命名参数(color=‘r’,linestyle=‘-’,marker=‘o’),也可以以字符串形式(‘r’+‘-’+‘o’)(‘r-o’)

(1.3.9)alpha
(2)**kwargs:允许传入多个可选的关键字参数
(3)label:标签,一个plot中只能有一个label,缺省为None

import matplotlib.pyplot as plt

#一个图片里绘制一个图像
a1=[3,4,5] # [列表]
a2=[2,3,2] # x,y元素个数N应相同

plt.plot(a1,a2)
plt.show()

Python--matplotlib(持续更新)

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

#一个图片里绘制两个图像
x=(3,4,5) # (元组)
y1=np.array([3,4,3]) # np.array
y2=pd.Series([4,5,4]) # pd.Series

plt.plot(x,y1)
plt.plot(y2)  # x可省略,默认[0,1..,N-1]递增,N是y内的元素数
plt.show() # plt.show()前可加多个plt.plot(),画在同一张图上

Python--matplotlib(持续更新)

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

#一个图片里绘制两个图像
plt.plot(x,y1,x,y2) # 此时x不可省略
plt.show()

Python--matplotlib(持续更新)

import numpy as np
import matplotlib.pyplot as plt

#二维数组
b1=np.array([[0,1,2], 
             [3,4,5],
             [6,7,8]])
b2=np.array([[2,3,5],
             [8,3,1],
             [4,5,9]])
#b1的第一列为[0,3,6],b2的第一列为[2,8,4],从而构成三个点一段折线,以此类推

plt.plot(b1,b2)
plt.show()

Python--matplotlib(持续更新)

import numpy as np
import matplotlib.pyplot as plt

#格式控制字符串
b1=np.array([[0,1,2],
             [3,4,5],
             [6,7,8]])
b2=np.array([[1,3,4],
             [7,1,8],
             [9,7,6]])

plt.plot(b1,b2,"ob:") #"b"为蓝色, "o"为圆点, ":"为点线
plt.show()

Python--matplotlib(持续更新)

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
 
#颜色与线型
color=['b','g','r','c','m','y','k','w']
linestyle=['-','--','-.',':']

##格式控制字符串
dic1=[[0,1,2],[3,4,5]]
x=pd.DataFrame(dic1)
dic2=[[2,3,2],[3,4,3],[4,5,4],[5,6,5]]
y=pd.DataFrame(dic2)

# 循环输出所有"颜色"与"线型"
for i in range(2):
    for j in range(4):
        plt.plot(x.loc[i],y.loc[j],color[i*4+j]+linestyle[j]) 
plt.show()

#如果只控制"颜色", 格式控制字符串还可以输入英文全称, 如"red"
#也可以是十六进制RGB字符串, 如"#FF0000"

Python--matplotlib(持续更新)

import matplotlib.pyplot as plt

#关键字=参数
y=[2,3,2] 
plt.plot(y,color="blue",linewidth=20,marker="o",markersize=50,
         markerfacecolor="red",markeredgewidth=6,markeredgecolor="grey")
plt.show()

Python--matplotlib(持续更新)
 

2.散点图matplotlib.pyplot.scatter(x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, edgecolors, **kwargs) / AxesSubplot.scatter()

参数:
(1)x,y:表示的是shape大小为(n,)的数组,也就是我们即将绘制散点图的数据点,输入数据。x轴数据和y轴数据
(2)s(可选):表示散点大小,是一个标量或者是一个shape大小为(n,)的数组,缺省为20
(3)c(可选):color,表示的是散点色彩或颜色序列。但是c不应该是一个单一的RGB数字,也不应该是一个RGBA的序列,因为不便区分。c可以是一个RGB或RGBA二维行数组。缺省为’b’,表示蓝色
(4)marker(可选):MarkerStyle,表示的是散点形状,标记的样式,缺省为’o’
(5)cmap(可选):Colormap,标量或者是一个colormap的名字,cmap仅仅当c是一个浮点数数组的时候才使用。如果没有申明就是image.cmap,缺省为None

cmap = plt.cm.Spectral
给label为1的点一种颜色,给label为0的点另一种颜色
cmap=plt.get_cmap(‘rainbow’))
设置颜色映射

(6)norm:Normalize,数据亮度在0-1之间,也是只有c是一个浮点数的数组的时候才使用,缺省为None
(7)vmin,vmax(可选):标量,当norm存在的时候忽略。用来进行亮度数据的归一化,缺省为None
(8)alpha(可选):标量,0-1之间,散点的透明度,缺省为None
(9)linewidths:标记点的长度,散点边框的宽度,缺省为None
(10)edgecolors:设置散点边框的颜色,缺省为None

 

3.柱状图matplotlib.pyplot.bar() / AxesSubplot.bar()

4.横向柱状图matplotlib.pyplot.barh() / AxesSubplot.barh()

4.茎状图(火柴图)matplotlib.pyplot.stem(x, y, linefmt, markerfmt, basefmt,bottom, label, orientation) / AxesSubplot.stem()

参数:
(1)x(可选):数组,每根火柴的x轴位置,缺省为arange(len(y))
(2)y:数组,火柴头部的y坐标
(3)linefmt(可选):字符串类型,定义垂直线条属性,包括线条颜色和线条类型,缺省为None
(4)markerfmt(可选):字符串类型,定义火柴头部标记属性,包括线条颜色和线条类型

  • 可选颜色:C0-C9,八种基础颜色
  • 可选线性:参考上面
  • 缺省为’C0o’

(5)basefmt(可选):字符串类型,定义基线属性,缺省为‘C3-’,经典模式下为‘C2-’
(6)bottom(可选):浮点型,基线所在的y轴位置,缺省为0
(7)label(可选):字符串类型,标签,缺省为None
(8)orientation(可选):如‘y’

2D图使用此参数似乎会引起警告

 

5.阶梯图(步阶图)(分段折线图)matplotlib.pyplot.step() / AxesSubplot.step()

6.填充图matplotlib.pyplot.fill_between() / AxesSubplot.fill_between()

7.堆叠图matplotlib.pyplot.stackplot() / AxesSubplot.stackplot()

8.极坐标图matplotlib.pyplot.polar() / AxesSubplot.polar()

(二)数组和字段的绘图

1.显示图像matplotlib.pyplot.imshow(X,cmap,interpolation) / AxesSubplot.imshow()

热图(heatmap)是数据分析的常用方法,通过色差、亮度来展示数据的差异、易于理解。
参数:
(1)x:图像数据

  • (M, N):带有标量数据的图像,灰度图。数据可视化使用色彩图。
  • (M,N,3):具有RGB值的图像(float或uint8)。
  • (M,N,4):具有RGBA值的图像(float或uint8),即包括透明度。
  • 前两个维度(M,N)定义了行和列图片,即图片的高和宽
  • RGB(A)值应该在浮点数[0,1]的范围内,或者整数[0,255]。超出范围的值将被剪切为这些界限。

(2)cmap:将标量数据映射到色彩图,缺省为None

cmap=‘颜色’;cmap=plt.get_cmap(‘颜色’)

(3)interpolation:缺省为None

2.matplotlib.pyplot.pcolormesh() / AxesSubplot.pcolormesh()

3.轮廓线(等高线)matplotlib.pyplot.contour(X, Y, Z, levels, cmap, **kwargs) / AxesSubplot.contour()

参数:
(1)X,Y(可选):数组,Z中值的坐标

  • 均为二维,形状与Z相同
  • 均为一维,此时len(X)==M是Z中的列数,len(Y)==N是Z中的行数
  • 缺省为整数索引,即X = range(M), Y = range(N)

(2)Z:类似数组(N,M),绘制轮廓的高度值
(3)levels(可选):int或数组,确定等高线/区域的数量和位置

  • 若为整数n,则使用n个数据间隔,在图中展现n条轮廓线
  • 若为数组[],则在指定标高绘制轮廓线,这些值必须按递增顺序排列
  • 缺省为画出若干条曲线Z=c,c为随机数字

(4)cmap:缺省为None
 

4.填充轮廓matplotlib.pyplot.contourf(X, Y, Z, levels, cmap, **kwargs) \ AxesSubplot.contourf()

基本同上

5.倒钩图matplotlib.pyplot.barbs() \ AxesSubplot.barbs()

6.箭图matplotlib.pyplot.quiver() \ AxesSubplot.quiver()

7.流线图matplotlib.pyplot.streamplot() \ AxesSubplot.streamplot()

8.绘制X与Y的相关性matplotlib.pyplot.cohere() \ AxesSubplot.cohere()

9.功率谱密度图matplotlib.pyplot.psd() \ AxesSubplot.psd()

10.谱图matplotlib.pyplot.specgram() \ AxesSubplot.specgram()

(三)统计分析绘图

1.直方图matplotlib.pyplot.hist() \ AxesSubplot.hist()

2.箱线图(箱型图)matplotlib.pyplot.boxplot() \ AxesSubplot.boxplot()

3.误差棒图matplotlib.pyplot.errorbar() \ AxesSubplot.errorbar()

4.小提琴图matplotlib.pyplot.violinplot() \ AxesSubplot.violinplot()

5.尖峰栅格图matplotlib.pyplot.eventplot() \ AxesSubplot.eventplot()

6.2D直方图matplotlib.pyplot.hist2d() \ AxesSubplot.hist2d()

7.matplotlib.pyplot.hexbin() \ AxesSubplot.hexbin()

8.饼状图matplotlib.pyplot.pie() \ AxesSubplot.pie()

(四)非结构化坐标

1.matplotlib.pyplot.tricontour() \ AxesSubplot.tricontour()

2.matplotlib.pyplot.tricontourf() \ AxesSubplot.tricontourf()

3.matplotlib.pyplot.tripcolor() \ AxesSubplot.tripcolor()

4.matplotlib.pyplot.triplot() \ AxesSubplot.triplot()

(五)3D

1. AxesSubplot.plot(x, y, z)

2. AxesSubplot.scatter(x, y, z)

3. AxesSubplot.plot_surface(x, y, z, rstride, cstride, cmap)

参数:
(1)x,y,z:
(2)rstride:row,指定行的跨度,缺省为1
(3)cstride:column,指定列的跨度,缺省为1
(4)color:表示的是散点色彩或颜色序列,同上
(5)cmap:标量或者是一个colormap的名字,cmap仅仅当c是一个浮点数数组的时候才使用,同上
(6)alpha(可选):标量,0-1之间,散点的透明度,缺省为None

4.

Triangular 3D surfaces,3D voxel / volumetric plot,3D wireframe plot

附录

1.颜色表

颜色表

2.标记marker

符号 标记 符号 标记 符号 标记 符号 标记
. , 像素 o 实心圈 v 倒三角
^ 正三角 < 左三角 > 右三角 1 下花三角
2 上花三角 3 左花三角 4 右花三角 8 正八面体
s 实心方形 p 实心五角 P 实心十字 + 十字
x 叉形 X 实心叉 d 瘦菱形 D 菱形
h 竖六边形 H 横六边形 | 竖直线 _ 水平线
* 五角星

以上未完待更新,仅供个人学习,侵权联系删除,如有错误或不足之处可指出,以便改进。文章来源地址https://www.toymoban.com/news/detail-448540.html

到了这里,关于Python--matplotlib(持续更新)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python--matplotlib--颜色表

        cmap即matplotlib.colors.Colormap,是一个包含三列矩阵的色彩映射表,简单来说就是一个shape为(N,3)的矩阵,矩阵中的值的值取值范围为[0,1];每一行代表一个颜色,即RGB值 以上未完待更新,仅供个人学习,侵权联系删除,如有错误或不足之处可指出,以便改进。

    2024年02月02日
    浏览(38)
  • python--matplotlib(4)

    Matplotlib画图工具的官网地址是 http://matplotlib.org/ Python环境下实现Matlab制图功能的第三方库,需要numpy库的支持,支持用户方便设计出二维、三维数据的图形显示,制作的图形达到出版级的标准。 其他matplotlib文章 python--matplotlib(1)_码银的博客-CSDN博客 python--matplotlib(2)_码银的博

    2024年02月20日
    浏览(33)
  • python——matplotlib绘图详解大全

    目录 一、图形绘制大全 1.1 2D图形绘制 1.1.1 绘制单线图形 1.1.2 绘制多线图 1.1.3 读取文件中的数据绘制图形 1.1.4 绘制散点图 1.1.5 绘制条形图 1.1.5.1 单条条形图 1、垂直条形图 2、水平条形图 1.1.5.2 多组条形图 1.1.5.3 堆积条形图 1.1.5.4 对称条形图 1.1.4 饼图 1.1.5 直方图 1.1.6 箱形

    2024年02月09日
    浏览(42)
  • 【Python】Matplotlib绘制折线图

    1.Matplotlib画图简单实现 Matplotlib在一个绘制2D图片的库 2.折线图 2.1绘制折线图 接下来逐步对折线图进行修改 2.2设置线的格式 2.3设置折点 2.4.图片的保存和导出 2.5设置刻度 2.6显示中文 matplotlib只显示应为,无法显示中文,需要修改matplotlib的默认字体 通过matplotlib下的font_mange

    2023年04月09日
    浏览(82)
  • python——matplotlib的用法详解

    目录 一、matplotlib简介 1.1 通过配置文件进行配置 3.2 通过 rcParams[‘param_name’] 配置 3.3 通过 matplotlib.rc() 函数配置 二、matplotlib绘制简单图形 2.1 利用plt.subplots绘图 2.2 图(Figure)的结构 2.2.1 图 Figure 2.2.2 轴域 Axes 2.2.3 轴 Axis 2.2.4 Artist 2.2.5 绘图函数的输入数据类型 2.2.6 编码风格

    2024年02月08日
    浏览(33)
  • python matplotlib.pyplot下载

    1,打开cmd 2,使用pip下载

    2024年02月08日
    浏览(35)
  • 30 Python的matplotlib模块

    概述         在上一节,我们介绍了Python的pandas模块,包括:Series、DataFrame、数据读取和写入等内容。在这一节,我们将介绍Python的matplotlib模块。matplotlib模块是一个Python的2D绘图库,可以实现各种类型的图形绘制,包括:线图、柱状图、饼图、散点图等。matplotlib支持各种

    2024年02月08日
    浏览(48)
  • Python Matplotlib 库使用基本指南

    简介 Matplotlib 是一个广泛使用的 Python 数据可视化库,它可以创建各种类型的图表、图形和可视化效果。无论是简单的折线图还是复杂的热力图,Matplotlib 提供了丰富的功能来满足我们的数据可视化需求。本指南将详细介绍如何安装、基本绘图函数以及常见图表类型的绘制方法

    2024年02月02日
    浏览(45)
  • Python可视化之Matplotlib

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 在jupyter notebook中有2种图形展现形式 %matplotlib notebook:运行这句命令会在notebook中启动交互式图形 %matplotlib inline:运行这句命令会在notebook中启动静态图形 如果没有运行该命令,默认展示静态图形 展现变量

    2024年04月10日
    浏览(50)
  • python画图Matplotlib和Seaborn

    Matplotlib官网   Matplotlib 是一个 Python 的绘图库,用于创建高质量的二维图表和一些基本的三维图表。它广泛应用于科学计算、数据分析、工程学和其他领域。   以下是 Matplotlib 的一些特点和功能: 简单易用:Matplotlib 提供了

    2024年04月10日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包