Oct1a

Matplotlib 用法与介绍

简介:

Matplotlib是一个Python 2D绘图库,它可以在各种平台上以各种硬拷贝格式和交互式环境生成出具有出版品质的图形。 Matplotlib可用于Python脚本,Python和IPython shell,Jupyter笔记本,Web应用程序服务器和四个图形用户界面工具包

Matplotlib试图让简单的事情变得更简单,让无法实现的事情变得可能实现。 只需几行代码即可生成绘图,直方图,功率谱,条形图,错误图,散点图等。

为了简单绘图,pyplot模块提供了类似于MATLAB的界面,特别是与IPython结合使用时。 对于高级用户,您可以通过面向对象的界面或MATLAB用户熟悉的一组函数完全控制线条样式,字体属性,轴属性等。

相关文档:

官网教程文档:https://matplotlib.org/users/index.html

各个平台的安装教程:https://matplotlib.org/users/installing.html

绘图步骤

  1. 获取数据
  2. 创建窗口、子图
  3. 设置图形属性、绘图
  4. 显示图形或输出图形

简单图形绘制

根据坐标点绘制

import numpy as np
import matplotlib.pyplot as plt
x = np.array([1,2,3,4,5,6,7,8])
y = np.array([3,5,7,6,2,6,10,15])
plt.plot(x,y,'r')# 折线 1 x 2 y 3 color
plt.plot(x,y,'g',lw=10)# 4 line w
# 折线 饼状 柱状
x = np.array([1,2,3,4,5,6,7,8])
y = np.array([13,25,17,36,21,16,10,15])
plt.bar(x,y,0.2,alpha=1,color='b')# 5 color 4 透明度 3 0.9
plt.show()

简单框架

plt.figure(num=1,figsize=(8,5)) #num 表示的是编号,figsize表示的是图标的长宽

plt.plot(x,label="") #label图例标签
plt.title("title",fontsize=20) #设置标题

plt.xlabel('x轴') #x轴下方显示的文字
plt.ylabel('y轴') #y轴下方显示的文字

plt.legend(loc='upper left')  #设置图例 默认右上

plt.show() #显示绘制的结果图像

解决中文乱码问题

plt.rcParams['font.sans-serif'] = ['SimHei']  #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  #用来正常显示负号

线条样式

线条风格linestyle或ls 描述
’ - ‘ 实线
‘—’ 破折线
‘-.’ 点划线
‘:’ 虚线
‘None’,’ ‘,’ 什么都不画

线条形状

标记 maker 描述 标记 描述
‘o’ 圆圈 ‘.’
‘D’ 菱形 ‘s’ 正方形
‘h’ 六边形1 ‘*’ 星号
‘H’ 六边形2 ‘d’ 小菱形
‘_’ 水平线 ‘v’ 一角朝下的三角形
‘8’ 八边形 ‘<’ 一角朝左的三角形
‘p’ 五边形 ‘>’ 一角朝右的三角形
‘,’ 像素 ‘^’ 一角朝上的三角形
‘+’ 加号 ‘\‘ 竖线
‘None’,’’,’ ‘ ‘x’ X

颜色

可以通过调用matplotlib.pyplot.colors()得到matplotlib支持的所有颜色。

别名 颜色 别名 颜色
b 蓝色 g 绿色
r 红色 y 黄色
c 青色 k 黑色
m 洋红色 w 白色

如果这两种颜色不够用,还可以通过两种其他方式来定义颜色值:

  • 使用HTML十六进制字符串 color='eeefff' 使用合法的HTML颜色名字(red,chartreuse等)。
  • 也可以传入一个归一化到[0,1]的RGB。 color=(0.3,0.3,0.4)

很多方法可以介绍颜色参数,如title()。
plt.tilte('Title in a custom color',color='#123456'

字体

黑体:SimHei
微软雅黑:Microsoft YaHei
微软正黑体:Microsoft JhengHei
新宋体:NSimSun
新细明体:PMingLiU
细明体:MingLiU
华文新魏:STXinwei
华文行楷:STXingkai
华文隶书:STLliti
花纹琥珀:STHupo
华文彩云:STCaiyun
方正姚体:FZYaoti
方正舒体:FZShuTi
标楷体:DFKai-SB
华文仿宋:STFangsong
华文中宋:STZhongsong
华文宋体:STSong
华文楷体:STKaiti
华文细黑:STXihei
幼圆:YouYuan
隶书:LiSu
楷体_GB 2313:Kaiti_GB2313
仿宋_GB2313:FangSong_GB2313
仿宋:FangSong

移动坐标位置到中心点

ax = plt.gca()
ax.spines['right'].set_color('none') #去掉右侧边框线
ax.spines['top'].set_color('none') #去掉顶部边框线

ax.xaxis.set_ticks_position('bottom')  #设置刻度方向
ax.yaxis.set_ticks_position('left') #设置刻度方向

ax.spines['bottom'].set_position(('data',0)) #x轴线移动至0坐标
ax.spines['left'].set_position(('data',0)) #y轴线移动至0坐标

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。