【北京理工大学-Python 数据分析-2.1Matplotlib库入门】

Matplotlib库的使用

  • Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发。
  • matplotlib.pyplot是绘制各类可视化图形的命令字库,相当于快捷方式。
import matplotlib.pyplot as plt
plt.plot([3,1,4,5,2])
plt.ylabel("Grade")
plt.savefig('test',dip=600) ##存储成PNG的格式,默认PNG格式,可以通过dip修改输出质量
plt.show()
import matplotlib.pyplot as plt
plt.plot([0,2,4,6,8],[3,1,4,5,2])##plt.plot(x,y)当由2各以上参数时,按照X轴和Y轴顺序绘制数据点。
plt.ylabel("Grade")
plt.axis([-1,10,0,6])##是X和Y轴的范围
plt.show()

pyplot的绘图区域:在全域绘图区域中创建一个分区体系,并定位到一个子绘图区域。

plt.subplot(nrows,ncols,plot_number)
plt.subplot(3,2,4)
plt.subplot(324)


举个栗子:

import numpy as np
import matplotlib.pyplot as plt 
def f(t):
    return np.exp(-t)*np.cos(2*np.pi*t)  ##定义一个能量衰减函数
a=np.arange(0.0,5.0,0.02)##随机生成一个数组a
plt.subplot(211)##将绘图区域分成2行一列,选择二第一个区域作图
plt.plot(a,f(a))
plt.subplot(2,1,2)
plt.plot(a,np.cos(2*np.pi*a),"r--")
plt.show()

【北京理工大学-Python 数据分析-2.1Matplotlib库入门】_第1张图片
plt.plot(x,y,format_string,kwargs)

  • x:x轴数据,列表或者数组,可选。
  • y:y轴数据,列表或数组。
  • format_string:控制曲线的格式字符串,可选。
  • kwargs:第二组或更多(x,y,format_string)
import matplotlib.pyplot as plt
import numpy as np
a=np.arange(10)
plt.plot(a,a*1.5,a,a*2.5,a,a*3.5,a,a*4.5) 
plt.show()

format_string:控制曲线的格式字符串,可选有颜色字符串、风格字符和标记字符组成。

颜色字符 说明
‘b’ 蓝色
‘g’ 绿色
‘r’ 红色
‘c’ 青绿色
‘#008000’ RGB某颜色
‘m’ 洋红色
‘y’ 黄色
‘k’ 黑色
‘w’ 白色
‘0.8’ 灰度值字符串

风格字符

风格字符 说明
‘_’ 实线
‘__’ 破折线
‘_.’ 点划线
‘:’ 虚线
‘’ ’ ’ 无线条

当绘制多条曲线时,各条曲线的x不能省。

format_string:控制曲线的格式字符串,可选

标记字符 说明
‘.’ 点标记
‘,’ 像素标记(极小点)
‘o’ 实心圈标记
‘v’ 倒三角标记
‘^’ 上三角标记
’>’ 右三角标记
‘<’ 左三角标记
‘1’ 下花三角标记
‘2’ 上花三角标记
‘3’ 左花三角标记
‘4’ 右花三角标记
‘s’ 实心方形标记
‘p’ 实心五角标记
‘*’ 星形标记
‘h’ 竖六边形标记
’H’ 横六边形标记
‘+’ 十字标记
‘x’ x标记
‘D’ 菱形标记
‘d’ 瘦菱形标记
‘竖线’ 垂直线标记

小试牛刀

import matplotlib.pyplot as plt
import numpy as np
a=np.arange(10)
plt.plot(a,a*1.5,'g-o',a,a*2.5,'r-x',a,a*3.5,'-*',a,a*4.5,'b-.') ##第一条绿色的线是实心绿点,第二条线是红色X,第三条是蓝色*,第四条是深蓝._形状
plt.show()

关于plt.plot(x,y,formaat_string,**kwargs)中的参数

  • **kwargs:第二组或更多(x,y,format_string)
  • color:控制颜色,color=‘green’
  • linestyle:线条风格,linestyle=‘dashade’
  • marker:标记风格,marker=‘o’
  • markerfacecolor:标记颜色,markerfacecolor=‘blue’
  • markersize:标记尺寸,markersize=20

pyplot无法直接使用汉语,需要进行修改。
pyplot的中文显示:第一种方法:rcParams修改字体

import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family']='SimHei'##使用rcParams将字体改为细黑
plt.plot([3,1,4,5,2])
plt.ylabbel("纵轴(值)
plt.savefig('test',dip=600)
plt.show()

rcParams函数对于字体和字号大小的修改

属性 说明
‘font.family’ 用于显示字体的名字
‘font.style’ 字体风格,正常’normal’或斜体’italic’
font.size’ 字体大小,整数字号或者’large’、‘x-small’

常见的中文字体类型

中文字体 说明
‘SimHei’ 中文黑体
‘Kaiti’ 中文楷体
‘LiSu’ 中文隶书
‘FangSong’ 中文幼圆
‘STSong’ 华文宋体

例子

import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family']='STsong'##使用这中修改的话,是全局字体格式的修改
matplotlib.rcParams['font.size']=20
a=np.arange(0.0,5.0,0.02)
plt.xlabel('横轴:时间')
plt.ylabel('纵轴:振幅')
plt.plot(a,np.cos(2*np.pi*a),'r--')
plt.show()

修改局部字体方法:
在有中文输出的地方,使用fonproperties()

import numpy as np
import matplotlib.pyplot as plt
a=np.arange(0.0,5.0,0.02)
plt.xlabel('横轴:时间',fontproperties='SimHei',fontsize=15)
plt.ylabel('纵轴:振幅',fontproperties='SimHei',fontsize=15)
plt.plot(a,np.cos(2*np.pi*a),'r--')
plt.show()

pyplot的文本显示函数

函数 说明
plt.xlabel() 对X轴增加文本标签
plt.ylabel() 对Y轴增加文本信息
plt.title() 对图形整体增加文本标签
plt.text() 对任意位置增加文本
plt.annotate() 在图形中增加带箭头的注释

实例

import numpy as np
import matplotlib.pyplot as plt
import re

a=np.arange(0.0,5.0,0.02)
plt.plot(a,np.cos(2*np.pi*a),'r--')
plt.xlabel('横轴:时间',fontproperties='SimHei',fontsize=15,color='green')
plt.ylabel('纵轴:振幅',fontproperties='SimHei',fontsize=15)

plt.title('正弦波实例 y=cos(2Πx)',fontproperties='SimHei',fontsize=25)###在python中使用常见的数学公式,可以结合LateX语法实现
plt.text(2,1,'μ=100',fontsize=15)
plt.axis([-1,6,-2,2])##在-1和6的地方展示该字符
plt.grid(True)
plt.show()

【北京理工大学-Python 数据分析-2.1Matplotlib库入门】_第2张图片
plt.annotate()函数的使用:

plt.annotate(S,xy=arrow_crd,xytest=text_crd,arrowprops=dict)
import numpy as np
import matplotlib.pyplot as plt
import re

a=np.arange(0.0,5.0,0.02)
plt.plot(a,np.cos(2*np.pi*a),'r--')
plt.xlabel('横轴:时间',fontproperties='SimHei',fontsize=15,color='green')
plt.ylabel('纵轴:振幅',fontproperties='SimHei',fontsize=15)
plt.title('正弦波实例 y=cos(2Πx)',fontproperties='SimHei',fontsize=25)###在python中使用常见的数学公式,可以结合LateX语法实现
plt.annotate('μ=100',xy=(2,1),xytext=(3,1.5),arrowprops=dict(facecolor='black',shrink=0.1,width=1.5))###使用plt.annotate()函数添加箭头指标
plt.axis([-1,6,-2,2])##在-1和6的地方展示该字符
plt.grid(True)
plt.show()

pyplot子绘图区域的设计
plt.subplot2grid()函数的使用

plt.subplot2grid(GridSpec,CurSpec,colspan=1,rowspan=1)
理念:设定网格,选中网格,确定选中行列区域数量,编号从0开始。

如对a2区域进行设计
【北京理工大学-Python 数据分析-2.1Matplotlib库入门】_第3张图片

plt.subplot2grid((3,3),(1,0),colspan=2)
##第一个参数是一个元组,表示把作图区域分为几个部分,在本例中表明分为339个部分,第二个参数显示的是选中当前区域第1行,第0列,colspan表示的是列宽的延长,此处表示延长2个单位。

如何用该函数选中每个区域并进行绘图?
plt.subplot2grid((3,3),(0,0),clospan=3)

plt.subplot2grid((3,3),(1,0),clospan=2)

plt.subplot2grid((3,3),(1,2),rawspan=2))
plt.subplotgrid((3,3),(2,0))

【北京理工大学-Python 数据分析-2.1Matplotlib库入门】_第4张图片
gridSpec类

import matplotlib.gridspec as gridspec
gs=gridspec.GridSpec(3,3)

ax1=plt.subplot(gs[0,:])
ax2=plt.subplot(gs[1,:-1])
ax3=plt.subplot(gs[1:,-1])
ax4=plt.subplot(gs[2,0])
ax5=plt.subplot(gs[2,1])

【北京理工大学-Python 数据分析-2.1Matplotlib库入门】_第5张图片

本章小结

pyplot()函数的画图基本操作:
1.基本参数、绘图、坐标轴等
2.线条的格式和风格
3.基本文本字符添加
4.subplot()和subplot2grid()对不同作图亚区的设计

【北京理工大学-Python 数据分析-2.1Matplotlib库入门】_第6张图片

你可能感兴趣的:(Python,学习之旅,学习充电,python,matplotlib,数据分析)