matplotlib是python的一个绘图库。使用它可以很方便的绘制出版质量级别的图形。说实话没有matlab画的图清楚。使用Matplotlib,能够轻易生成各种图像,例如:直方图、波谱图、条形图、散点图等。

案例:绘制一条正弦曲线

import numpy as np
import matplotlib.pyplot as plt

xs = np.linspace(-np.pi, np.pi, 1000)
ys = np.sin(xs)
plt.plot(xs, ys)
plt.show()

Matplotlib 绘图库从入门到精通

绘制水平线和垂直线:

plt.vlines(vval, ymin, ymax, ...)  绘制垂直线  

参数:

  • vval:垂直线的 x轴坐标的起始值
  • ymin:垂直线长度的最小值 
  • ymax:垂直线长度的最大值

plt.hlines(xval, xmin, xmax, ...)  绘制水平线 

参数:

  • vval:水平线的 y轴坐标的起始值
  • ymin:水平线长度的最小值 
  • ymax:水平线长度的最大值
import matplotlib.pyplot as plt

plt.vlines(0,0,10)  # x轴
plt.hlines(0,0,10)  # y轴
plt.show()

Matplotlib 绘图库从入门到精通

线条、线宽和颜色

linestyle 线形

  常见的线:直线:-  虚线: - -  点线::  点划线:-.  星号:*

  常见的点:点:.  方形:s  圆:o  像素:,  三角形:^

linewidth  线宽

color  颜色

  • 英文颜色单词
  • 常见颜色英文单词首字母
  • 16进制表示颜色:#495434
  • rgb或rgba(1,1,1) 或 (1,1,1,1)

常见的颜色:蓝色:b  青色:c  红色:r  黑色:k  绿色:g  品红:r  黄色:y  白色:w

alpha  透明度,浮点数值

plt.plot(xarray, yarray, linestyle='', linewidth=1, color='', alpha=0.5)

坐标轴取值范围

plt.xlim(x_min,x_min)

参数:

  • x_limt_min:x轴范围最小值
  • x_limt_min:x轴范围最大值

plt.ylim(y_min,y_min)

参数:

  • y_limt_min:y轴范围最小值
  • y_limt_min:y轴范围最大值

坐标轴刻度

plt.xticks(x_val_list , x_text_list )

参数:

  • x_val_list: x轴刻度值序列
  • x_text_list: x轴刻度标签文本序列 [可选]

plt.yticks(y_val_list , y_text_list )

  • y_val_list: y轴刻度值序列
  • y_text_list: y轴刻度标签文本序列 [可选]
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi], ["","-π/2", 0, "π/2", "π"])

Matplotlib 绘图库从入门到精通

刻度文本的特殊语法--LaTax语法字符串

plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
    [r"$-\pi$",r"$-\frac{\pi}{2}$", 0, r"$\frac{\pi}{2}$", r"$\pi$"])

 Matplotlib 绘图库从入门到精通

设置坐标轴

坐标轴名:'left':左轴、'right':右轴、'bottom':下轴、'top':上轴

ax = plt.gca()           获取其中某个坐标系
axis = ax.spines['坐标轴名']  获取某个具体的上下左右坐标轴,left、right、bottom、top

axis.set_position(("data", val))  设置坐标轴位置

参数:

  • type: 移动坐标轴的参照类型 一般为'data' (以数据的值作为移动参照值)
  • val: 参照值

axis.set_color(color)    设置坐标轴的颜色

案例:设置坐标轴至中心

ax = plt.gca()
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.spines['left'].set_position(('data', 0))
ax.spines['bottom'].set_position(('data', 0))
plt.yticks([-1, -0.5, 0.5, 1])

Matplotlib 绘图库从入门到精通

图例

显示图例,需要先在plt.plot中设置曲线的label,再plt.legend设置图例

plt.plot(xarray, yarray ... label='', ...)  label: <关键字参数 str> 支持LaTex排版语法字符串

plt.legend(loc='')

  loc:制定图例的显示位置 (若不设置loc,则显示默认最优位置)

'best'  最优的位置
'upper right' 上右 
'upper left' 上左 
'lower left' 下左 
'lower right' 下右 
'right' 右 
'center left' 中心偏左 
'center right' 中心偏右 
'lower center' 中心偏下 
'upper center' 中心偏上 
'center' 中心 

 

plt.title("****)  设置图的标题

plt.xlabel("x")  设置x轴的名称

plt.ylabel("y")  设置y轴的名称

plt.grid(linestyle="")    设置网格线,参数可以不写

mp.tick_params(labelsize=8)  设置刻度字体大小

标注点

plt.scatter(x, y, marker='', s=60, edgecolor='', facecolor='', zorder=3)

参数:

  • x,y:     需要标注的点,或点的数组
  • marker:    点型
  • s:       大小
  • edgecolor:  边缘色
  • facecolor:  填充色 
  • zorder:    绘制图层编号 (编号越大,图层越靠上,就不会被线条盖住)
  • label:    用于在图例中显示的字符串

添加注释

有时候我们需要对特定的点进行标注,我们可以使用 plt.annotate 函数来实现。

这里我们要标注的点是 (x0, y0) = (π, 0)

annotate("备注内容", xycoords="data", xy=(x,y), textcoords='offset points', xytext=(x, y), fontsize=14, arrowprops=dict(arrowstyle='', connectionstyle=''))

参数:

  • 第一个参数,就是备注的内容,支持LaTax语法
  • xycoords='data':参照类型 一般为'data' (以数据的值作为移动参照值)
  • textcoords='offset points':表示对于标注位置的描述(offset points表示参照点的偏移坐标系)
  • xytext=(+30, -30)  xy 偏差值,即标注位置是 xy 位置向右移动 30,向下移动30;
  • fontsize:字体大小
  • arrowprops 是对图中箭头类型和箭头弧度的设置,需要用 dict 形式传入。

    • arrowstyle='', #定义箭头样式
    • connectionstyle='' #定义连接线的样式
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2 * np.pi, 50)
y = np.sin(x)
plt.plot(x, y)

x0 = np.pi
y0 = 0

plt.scatter(x0, y0, s=50)        # 画出标注点
# 右边的
plt.annotate('sin(np.pi)=%s' % y0, xy=(np.pi, 0), xycoords='data', xytext=(+30, -30),
             textcoords='offset points', fontsize=16,
             arrowprops=dict(arrowstyle='->', connectionstyle="arc3,rad=.2"))
# 左边的
plt.text(0.5, -0.25, "sin(np.pi) = 0", fontdict={'size': 16, 'color': 'r'})

plt.show()

Matplotlib 绘图库从入门到精通

============   =============================================
Name           Attrs
============   =============================================
  '-'          None
  '->'         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
============   =============================================
箭头样式

相关文章:

  • 2022-12-23
  • 2021-04-01
  • 2021-10-22
  • 2021-12-03
  • 2021-12-19
  • 2021-11-21
  • 2021-11-27
猜你喜欢
  • 2023-03-12
  • 2021-08-26
  • 2021-11-05
  • 2021-09-16
相关资源
相似解决方案