pandas中的数据结构Series和DataFrame,都有生成各类图标的plot()方法,默认状态下,生成的折线图。

  1. s.plot(kind='line', ax=None, figsize=None, use_index=True, title=None, grid=None, legend=False,
  2. style=None, logx=False, logy=False, loglog=False, xticks=None, yticks=None, xlim=None, ylim=None,
  3. rot=None, fontsize=None, colormap=None, table=False, yerr=None, xerr=None, label=None,
  4. secondary_y=False, **kwds)

Series对象的plot()方法,接收参数:

  • kind:绘图类型
    • line:折线图(默认)
    • bar:直方图
    • barh:横直方图
    • hist:柱形图
    • box:箱型图
    • kde:kernel密度估计图,主要是对柱形图添加kernel概率密度线
    • density:same as kde
    • area:面积图
    • pie:饼图
  • ax:matplotlib axes轴对象,默认使用gca()
  • figsize:画布大小
  • use_index:布尔值,是否用索引作为横坐标
  • title:字符串或列表,图标题
  • grid:布尔值,是否显示网格线
  • legend:图例
  • style:列表或字典,每列数据的图形样式
  • logx, logy:使用$n*10^0$来表示x、y轴坐标
  • loglog:同时使用$n*10^0$来表示x、y轴坐标
  • xticks、yticks:x、y轴可读标签
  • xlim、ylim:x、y轴可读的取值范围
  • rot:改变刻度标签(xticks, yticks)的旋转度
  • fontsize:设置刻度标签(xticks, yticks)的大小
  • position柱形图柱子的位置设置
  • table:横坐标的值以表格形式展现出来
  • yerr、xerr:带y、x轴误差线的柱形图
  • lable:列的别名,作用再图例上
  • secondary_y:双y轴,再右边的第二个y轴
  • mark_right:双y轴时,图例中的列标签旁增加显示(right)标识

DataFrame对象的plot()方法和Series对象的大同小异,这里只展示不同的地方:

多接收的参数:

  • kind
    • scatter:散点图,需要传入columns方向的索引
    • hexbin:三维直方图的二维表现图
  • subplots:布尔值,是否有子图
  • sharex、sharey:是否共享x、y轴刻度。如果有子图,默认True,如果没有子图,默认False
  • layout:元组,子图的行列布局
  1. import numpy as np
  2. import pandas as pd
  3. from pandas import Series, DataFrame
  4. import matplotlib.pyplot as plt
  5. % matplotlib inline

折线图

一般用来表示数据的变化趋势

绘图时,y 轴表示数据大小,x轴表示Series对象的索引index,x值和y值个数必须匹配

Series折线图

  1. x = np.linspace(0,2*np.pi, 100)
  2. y = np.sin(x)
  3. s = Series(data=y, index=x)
  1. df = DataFrame(data=np.random.randint(0,10,size=(5,7)), columns=list("ABCDEFG"))
  1. # 设置图例label,需要将legend设置为True
  2. s.plot(style='-', title='title1', fontsize=20, label='line1', rot=20, colormap='Blues_r')

06Python数据分析中的绘图函数 - 图1

  1. # 因为相比较刻度来说,数据量非常的大,折线图非常平滑
  2. # 同一张图中,后设置的属性会把先设置的属性覆盖
  3. # fontsize属性被覆盖
  4. # grid属性显示
  5. # 多个图形绘制,rot不能使x轴刻度值旋转
  6. ytk = [-3, -2.5, -2, -1.5, -1, -0.5, 0, 0.5, 1]
  7. s.plot(style='-', legend=True, use_index=True, title='title1', fontsize=20, label='line1', rot=20)
  8. (s - 1).plot(style='-.', legend=True, title='title2', fontsize=10, label='line2', color='yellow')
  9. (s - 2).plot(style=':', legend=True, label='line3', color='red', grid=True, table=True, yticks=ytk)

06Python数据分析中的绘图函数 - 图2

DataFrame折线图

  1. # x 轴表示df的index
  2. # y 轴表示数据值的大小
  3. # df对象有几列,就绘制几条线,每一条线的值就是每一列的值
  4. df.plot(kind='line')

06Python数据分析中的绘图函数 - 图3

柱形图

柱形图是一种以长方形的长度为变量的统计图表。一般用来展示横向数据的比较大小

  1. x = ["tom", 'jim', "jhon", "jerry"]
  2. y = [90, 34, 56, 78]
  3. s = Series(data=y, index=x)
  4. # 纵向误差线设置为True
  5. s.plot(kind='bar', yerr=True)

06Python数据分析中的绘图函数 - 图4

  1. # 横向柱形图
  2. s.plot(kind='barh')

DataFrame柱形图

  1. # x 轴别是df的index
  2. # y 轴表示数据的大小
  3. # 每一块图形表示索引index位置的一行数据
  4. # 多重数据会产生图例,位置随机
  5. df.plot(kind='bar', use_index=False)

06Python数据分析中的绘图函数 - 图5

直方图

直方图又叫质量分布图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。一般用横轴表示数据类型,纵轴表示分布情况。

  • x轴表示一个区间,数据出现的区间
  • y轴表示数据中,数据落在每个x区间的个数
  • bins 表示数据分区的个数,数据中【最小-最大】值
  1. # 绘制标准正态分布曲线
  2. x = np.linspace(-3,3,100)
  3. # y 表示取值的个数
  4. y = np.random.randn(100)
  5. s = Series(data=y, index=x)
  6. # bins 表示数据分区的个数,数据中【最小-最大】值
  7. s.plot(kind='hist', bins=20)

06Python数据分析中的绘图函数 - 图6

  1. # bins的设置会影响图像展示
  2. # normed=True 会将直方图的y轴由数据个数,变成出现的频率
  3. data = [1,2,1,4,4,4,6,7,9,9]
  4. s = Series(data=data)
  5. s.plot(kind='hist', bins=10, normed=True)
  6. # kernel密度估计,可以展示概率分布的趋势
  7. s.plot(kind='kde')

06Python数据分析中的绘图函数 - 图7

散点图

散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合。DataFrame对象可用

  1. # 气泡散点图,设置s 属性,s的大小就是气泡的单位值大小,s 越大气泡越大
  2. df.plot.scatter(x='A', y='B', s=df['C']*50)

06Python数据分析中的绘图函数 - 图8

  1. # 设置colorbar为True,会显示一个色深标尺,为每个点提供颜色
  2. # c 为df数据中一列数据,以其为标准
  3. df.plot.scatter(x='C', y='B', c='F', colorbar=True, s=df['D']*50)

06Python数据分析中的绘图函数 - 图9

区域图

区域图将 Y 中的元素显示为一个或多个曲线并填充每个曲线下方的区域。如果 Y 为矩阵,则曲线堆叠在一起,显示每行元素占每个 x 区间的曲线总高度的相对量。

  1. # 接收x、y轴坐标值
  2. df.plot.area()

06Python数据分析中的绘图函数 - 图10

matplotlib绘图

  1. # dataframe柱行图
  2. # x 轴别是df的index
  3. # y 轴表示数据的大小
  4. # 每一块图形表示索引index位置的一行数据
  5. # 多重数据会产生图例,位置随机
  6. df.plot(kind='bar', use_index=False)

06Python数据分析中的绘图函数 - 图11

散点图

  1. # 散点图,用于描述是两组数据的对应关系
  2. heigh = [180, 178, 190, 163, 158, 160]
  3. weight = [140, 155, 200, 160, 210, 90]
  4. df = DataFrame(data={
  5. "heigh": heigh,
  6. "weight": weight
  7. })
  8. df.plot(x="weight", y="heigh", kind="scatter")

06Python数据分析中的绘图函数 - 图12

Matplotlib 可能是 Python 2D-绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。一般多使用matplotlib来进行绘图。

matplotlib基础知识

Matplotlib中的基本图表包括的元素

  • x轴和y轴 axis
    水平和垂直的轴线
  • 轴标签 axisLabel
    水平和垂直的轴标签
  • x轴和y轴刻度 tick
    刻度标示坐标轴的分隔,包括最小刻度和最大刻度
  • x轴和y轴刻度标签 tick label
    表示特定坐标轴的值
  • 绘图区域(坐标系) axes
    实际绘图的区域
  • 画布 figure
    呈现所有的坐标系

只包含单一曲线的图形

  1. import numpy as np
  2. import pandas as pd
  3. from pandas import Series, DataFrame
  4. import matplotlib.pyplot as plt
  5. %matplotlib inline

1、可以使用多个plot函数(推荐),在一个图中绘制多个曲线

  1. # dataframe柱行图
  2. # x 轴别是df的index
  3. # y 轴表示数据的大小
  4. # 每一块图形表示索引index位置的一行数据
  5. # 多重数据会产生图例,位置随机
  6. df.plot(kind='bar', use_index=False)

06Python数据分析中的绘图函数 - 图13

  1. x = np.linspace(0,2*np.pi,100)
  2. y = np.sin(x) + np.cos(x)
  3. # x, y两个坐标轴
  4. y1 = np.sin(x)
  5. y2 = np.cos(x)
  6. plt.plot(x, y)
  7. plt.plot(x, y1)
  8. plt.plot(x, y2)

06Python数据分析中的绘图函数 - 图14

2、也可以在一个plot函数中传入多对X,Y值,在一个图中绘制多个曲线

  1. plt.plot(x, y, x,y1, x,y2)

获取画板对象

  1. # 注意获取画板对象使用小写函数
  2. # figsize可以看成比例,不是像素
  3. figure = plt.figure(figsize=(4, 3), facecolor='cyan')
  4. # 向画板添加画布
  5. # 参数,n行m列第n个
  6. # 传入了位置的描述
  7. ax1 = figure.add_subplot(221)
  8. ax2 = figure.add_subplot(339)
  9. ax3 = figure.add_subplot(233)
  10. # 画板的划分会重叠,后绘制的会覆盖先绘制的
  11. ax4 = figure.add_subplot(332)

06Python数据分析中的绘图函数 - 图15

设置子画布

在整个画布中分区,以展示不同的图形

  1. plt.figure(figsize=(8,4))
  2. ax1 = plt.subplot(1,2,1)
  3. ax2 = plt.subplot(1,2,2)

设置画布属性

网格线

使用plt.grid方法可以开启网格线,使用plt面向对象的方法,创建多个子图显示不同网格线

  • lw代表linewidth,线的粗细
  • alpha表示线的明暗程度
  • color代表颜色
  • axis显示轴向

坐标轴界限

格式:plt.axis([xmin,xmax,ymin,ymax])

plt.axis('xxx')

参数’tight’、’off’、’equal’……

  • “off” 关闭轴显示
  • [] 设置坐标轴的边界
  • “equal”,”scaled” 调整轴刻度的比例
  1. plt.axis([-np.pi,3*np.pi, -1.5, 1.5])
  2. # 分区控制坐标轴
  3. ax1 = plt.subplot(1,2,1)
  4. ax1.axis([-2,2,-2,2])

也可以通过xlim、ylim方法来设置坐标轴界限

  1. # 设置画布坐标界限
  2. plt.xlim((-2,2))
  3. plt.ylim((-3,3))
  4. # 子画布坐标界限
  5. ax1 = plt.subplot(1,2,1)
  6. ax1.set_xlim([-2,2])

坐标轴标签

xlabel方法和ylabel方法
plt.ylabel(‘y = x^2 + 5’,rotation = 60)旋转

  • color 标签颜色
  • fontsize 字体大小
  • rotation 旋转角度
  1. plt.xlabel("weight", color="red", fontsize=20, rotation = 90)
  2. plt.ylabel("height", color="blue", fontsize=20, rotation = 0)
  3. # 分区控制标签
  4. ax2 = plt.subplot(1,2,2)
  5. ax2.set_xlabel("weight", color="red")
  6. ax2.set_ylabel("height", fontdict={
  7. "fontsize":20
  8. })

设置标题

plt.title()方法

  • loc {left,center,right}
  • color 标签颜色
  • fontsize 字体大小
  • rotation 旋转角度
  1. plt.title("TITLE", color="red", fontsize=30)
  2. # 分区控制
  3. plt.figure(figsize=(10,4))
  4. ax1 = plt.subplot(1,2,1)
  5. ax1.set_title("axes1", fontsize=20, color="blue")

设置图例

legend方法

两种传参方法:

  • 分别在plot函数中增加label参数,再调用legend()方法显示
  • 直接在legend方法中传入字符串列表

loc参数

  • loc参数用于设置图例标签的位置,一般在legend函数内
  • matplotlib已经预定义好几种数字表示的位置 | 字符串 | 数值 | 字符串 | 数值 | | :—-: | :—-: | :—-: | :—-: | | best | 0 | center left | 6 | | upper right | 1 | center right | 7 | | upper left | 2 | lower center | 8 | | lower left | 3 | upper center | 9 | | lower right | 4 | center | 10 | | right | 5 | | |

loc参数可以是2元素的元组,表示图例左下角的坐标

  • [0,0] 左下
  • [0,1] 左上
  • [1,0] 右下
  • [1,1] 右上

图例也可以超过图的界限loc = (-0.1,0.9)

  1. # 第一种写法,向legend函数中传入一个字符串列表
  2. plt.legend(["normal","fast","slowly"])
  3. # 第二种写法:为每一个图形添加label属性
  4. plt.plot(x,x,label="normal")
  5. plt.plot(x,x*2, label="fast")
  6. plt.plot(x,x/2, label="slowly")
  7. plt.legend(ncol=2)
  8. # 同样可以分区控制属性
  9. ax1 = plt.subplot(1,2,1)
  10. ax1.set_title("axes1")
  11. ax1.plot(x,x, x,x*2)
  12. ax1.legend(["normal","fast"],loc=[1.0,1.0])

ncol参数

ncol控制图例中有几列,在legend中设置ncol,需要设置loc

linestyle、color、marker
修改线条样式

保存图片

使用figure对象的savefig的函数

  • filename
    含有文件路径的字符串或Python的文件型对象。图像格式由文件扩展名推断得出,例如,.pdf推断出PDF,.png推断出PNG
    (“png”、“pdf”、“svg”、“ps”、“eps”……)
  • dpi
    图像分辨率(每英寸点数),默认为100
  • facecolor
    图像的背景色,默认为“w”(白色)
  1. figure = plt.figure(figsize=(8,6), facecolor='orange')
  2. # 设置子画布,并画图
  3. ax1 = figure.add_subplot(2,2,1)
  4. ax1.plot(x, np.sin(x))
  5. ax1.set_title("sin(x)", fontdict={
  6. "fontsize":16,
  7. "color":"red"
  8. })
  9. # 保存图像
  10. figure.savefig('image.png',dpi=50)

设置plot的风格和样式

plot语句中支持除X,Y以外的参数,以字符串形式存在,来控制颜色、线型、点型等要素,语法形式为:
plt.plot(X, Y, 'format', ...)

  1. x = np.linspace(0,10,10)
  2. plt.plot(x, x, color="red", linewidth=2, alpha=0.3, linestyle="-", marker="D",
  3. markersize=20, markeredgecolor="blue",markeredgewidth=4,markerfacecolor="red")
  4. # 自定义虚线,有色长度3,无色长度1,有色长度10,无色长度1,接连显式
  5. plt.plot(x, x, dashes=[3, 1, 10, 1])
  6. # 获取线对象,对线对象单独设置外观
  7. lines = plt.plot(x,x, x,x*2, x,x**2)
  8. lines[0].set_color("red")
  9. lines[0].set_linewidth(3)
  10. lines[1].set_color("blue")
  11. lines[1].set_marker("D")
  12. lines[2].set_color("green")
  13. lines[2].set_dashes([10,2])

点和线的样式

颜色

参数color或c

颜色值的方式

  • 别名
    • color=’r’
  • 合法的HTML颜色名
    • color = ‘red’ | 颜色 | 别名 | HTML颜色名 | 颜色 | 别名 | HTML颜色名 | | :—-: | :—-: | :—-: | :—-: | :—-: | :—-: | | 蓝色 | b | blue | 绿色 | g | green | | 红色 | r | red | 黄色 | y | yellow | | 青色 | c | cyan | 黑色 | k | black | | 洋红色 | m | magenta | 白色 | w | white |
  • HTML十六进制字符串
    • color = ‘#eeefff’
  • 归一化到[0, 1]的RGB元组
    • color = (0.3, 0.3, 0.4)
  • jpg png 区别

透明度

alpha参数

背景色

设置背景色,通过plt.subplot()方法传入facecolor参数,来设置坐标系的背景色

线型

参数linestyle或ls

线条风格 描述 线条风格 描述
‘-‘ 实线 ‘:’ 虚线
‘—‘ 破折线 ‘steps’ 阶梯线
‘-.’ 点划线 ‘None’ / ‘,’ 什么都不画

线宽

linewidth或lw参数

不同宽度的破折线

dashes参数 eg.dashes = [20,50,5,2,10,5]

点型

  • marker 设置点形
  • markersize 设置点形大小 | 标记 | 描述 | 标记 | 描述 | | :—-: | :—-: | :—-: | :—-: | | ‘1’ | 一角朝下的三脚架 | ‘3’ | 一角朝左的三脚架 | | ‘2’ | 一角朝上的三脚架 | ‘4’ | 一角朝右的三脚架 |
标记 描述 标记 描述
‘s’ 正方形 ‘p’ 五边形
‘h’ 六边形1 ‘H’ 六边形2
‘8’ 八边形
标记 描述 标记 描述
‘.’ ‘x’ X
‘*’ 星号 ‘+’ 加号
‘,’ 像素
标记 描述 标记 描述
‘o’ 圆圈 ‘D’ 菱形
‘d’ 小菱形 ‘’,’None’,’ ‘,None
标记 描述 标记 描述
‘_’ 水平线 ‘|’ 竖线
标记 描述 标记 描述
‘v’ 一角朝下的三角形 ‘<’ 一角朝左的三角形
‘^’ 一角朝上的三角形 ‘>’ 一角朝右的三角形

多参数连用

颜色、点型、线型,可以把几种参数写在一个字符串内进行设置 ‘r-.o’

更多点和线的设置

  • markeredgecolor = ‘green’,
  • markeredgewidth = 2,
  • markerfacecolor = ‘purple’ | 参数 | 描述 | 参数 | 描述 | | :—-: | :—-: | :—-: | :—-: | | color或c | 线的颜色 | linestyle或ls | 线型 | | linewidth或lw | 线宽 | marker | 点型 | | markeredgecolor | 点边缘的颜色 | markeredgewidth | 点边缘的宽度 | | markerfacecolor | 点内部的颜色 | markersize | 点的大小 |

多个曲线同一设置

属性名声明,不可以多参数连用

plt.plot(x1, y1, x2, y2, fmt, ...)

  1. plt.plot(x,x,'b-.o',x,x*2,'r--d')

多个曲线不同设置

多个都进行设置时,多参数连用
plt.plot(x1, y1, fmt1, x2, y2, fmt2, …)

三种设置方式

  1. 向方法传入关键字参数
  2. 对实例使用一系列的setter方法
  • plt.plot()方法返回一个包含所有线的列表,设置每一个线需要获取该线对象
    • eg: lines = plt.plot(); line = lines[0]
    • line.set_linewith()
    • line.set_linestyle()
    • line.set_color()
  1. 对坐标系使用一系列的setter方法
  • axes = plt.subplot()获取坐标系
    • set_title()
    • set_facecolor()
    • set_xticks、set_yticks 设置刻度值
    • set_xticklabels、set_yticklabels 设置刻度名称

X、Y轴坐标刻度

plt.xticks()和plt.yticks()方法

  • 需指定刻度值和刻度名称 plt.xticks([刻度列表],[名称列表])
  • 支持fontsize、rotation、color等参数设置
  1. plt.plot(x, np.sin(x))
  2. # 设置刻度
  3. plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],["-Π","-Π/2","0","Π/2","Π"])
  4. plt.yticks([-1,0,1])
  5. plt.grid()
  1. ax = plt.subplot(1,1,1)
  2. ax.plot(x, np.sin(x))
  3. # 设置坐标轴刻度
  4. ax.set_xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi])
  5. # 设置坐标轴标签
  6. ax.set_xticklabels(["-Π","-Π/2","0","Π/2","Π"])

正弦余弦

LaTex语法,用$\pi$、$\sigma$等表达式在图表上写上希腊字母

字体设置

1.全局设置

常用字体:

  • 黑体 SimHei
  • 仿宋 FangSong
  • 楷体 KaiTi
  1. # 配置matplotlib显示中文
  2. from pylab import mpl
  3. mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
  4. mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
  5. # 测试
  6. plt.title("-中文字体")

2.加载自定义字体,设置局部

  1. from matplotlib import font_manager
  2. myfont = font_manager.FontProperties(fname='../辣鸡心心体.ttf')
  3. # 测试
  4. plt.title("-中文测试字体", fontproperties=myfont, fontsize=15)

2D图形

直方图

【直方图的参数只有一个x!!!不像条形图需要传入x,y】

hist()的参数

  • bins
    可以是一个bin数量的整数值,也可以是表示bin的一个序列。默认值为10
  • normed
    如果值为True,直方图的值将进行归一化处理,形成概率密度,默认值为False
  • color
    指定直方图的颜色。可以是单一颜色值或颜色的序列。如果指定了多个数据集合,颜色序列将会设置为相同的顺序。如果未指定,将会使用一个默认的线条颜色
  • orientation
    通过设置orientation为horizontal创建水平直方图。默认值为vertical

条形图

【条形图有两个参数x,y】

  • width 纵向设置条形宽度
  • height 横向设置条形高度

bar()、barh()

玫瑰图/极坐标条形图

创建极坐标,设置polar属性

  • plt.axes(polar = True)

绘制极坐标条形图

  • index = np.arange(-np.pi,np.pi,2*np.pi/6)
  • plt.bar(x=index ,height = [1,2,3,4,5,6] ,width = 2*np.pi/6)

饼图

【饼图也只有一个参数x!】

pie()
饼图适合展示各部分占总体的比例,条形图适合比较各部分的大小

普通各部分占满饼图

普通未占满饼图

饼图阴影、分裂等属性设置

  • labels参数设置每一块的标签;
  • labeldistance参数设置标签距离圆心的距离(比例值,只能设置一个浮点小数)
  • autopct参数设置比例值的显示格式(%1.1f%%);
  • pctdistance参数设置比例值文字距离圆心的距离
  • explode参数设置每一块顶点距圆形的长度(比例值,列表);
  • colors参数设置每一块的颜色(列表);
  • shadow参数为布尔值,设置是否绘制阴影
  • startangle参数设置饼图起始角度

散点图

【散点图需要两个参数x,y,但此时x不是表示x轴的刻度,而是每个点的横坐标!】

scatter()

图形内的文字、注释、箭头

控制文字属性的方法:

pyplot函数 API方法 描述
text() mpl.axes.Axes.text() 在Axes对象的任意位置添加文字
xlabel() mpl.axes.Axes.set_xlabel() 为X轴添加标签
ylabel() mpl.axes.Axes.set_ylabel() 为Y轴添加标签
title() mpl.axes.Axes.set_title() 为Axes对象添加标题
legend() mpl.axes.Axes.legend() 为Axes对象添加图例
figtext() mpl.figure.Figure.text() 在Figure对象的任意位置添加文字
suptitle() mpl.figure.Figure.suptitle() 为Figure对象添加中心化的标题
annnotate() mpl.axes.Axes.annotate() 为Axes对象添加注释(箭头可选)

所有的方法会返回一个matplotlib.text.Text对象

图形内的文字

注释

annotate()

  • xy参数设置箭头指示的位置
  • xytext参数设置注释文字的位置
  • arrowprops参数以字典的形式设置箭头的样式
  • width参数设置箭头长方形部分的宽度
  • headlength参数设置箭头尖端的长度,
  • headwidth参数设置箭头尖端底部的宽度
  • shrink参数设置箭头顶点、尾部与指示点、注释文字的距离(比例值),可以理解为控制箭头的长度

如下都是arrowstyle可以选择的风格样式

  • '->' head_length=0.4,head_width=0.2
  • '-[' widthB=1.0,lengthB=0.2,angleB=None
  • '|-|' widthA=1.0,widthB=1.0
  • '-|>' head_length=0.4,head_width=0.2
  • '<-' head_length=0.4,head_width=0.2
  • '<->' head_length=0.4,head_width=0.2
  • '<|-' head_length=0.4,head_width=0.2
  • '<|-|>' head_length=0.4,head_width=0.2
  • 'fancy' head_length=0.4,head_width=0.4,tail_width=0.4
  • 'simple' head_length=0.5,head_width=0.5,tail_width=0.2
  • 'wedge' tail_width=0.3,shrink_factor=0.5

3D图

曲面图

导包

  • from mpl_toolkits.mplot3d.axes3d import Axes3D

使用mershgrid函数切割x,y轴

  • X,Y = np.meshgrid(x, y)

创建3d坐标系

  • axes = plt.subplot(projection=’3d’)

绘制3d图形

  • p = axes.plot_surface(X,Y,Z,color=’red’,cmap=’summer’,rstride=5,cstride=5)

添加colorbar

  • plt.colorbar(p,shrink=0.5)