matplotlib可视化库简介 Matplotlib库是Python中著名的绘图库,也是Python可视化库的基础库,功能十分强大。 Matplotlib库由各种可视化类 构成,内部结构复杂,受Matlab启matplotlib.pyplot 是绘制各类可视化图形的命令子库,相当于快捷方式。Import matplotlib.pyplot as plt #引入模块的别名 matplotlib通过pyplot模块提供了一套和Matlab类似的绘图API,将众多绘图对象所构成的复杂结构隐藏在这套API内部。因此,只需要调用pyplot模块所提供的函数就可以实现快速绘图以及设置图表的各种细节。 pyplot的保存图片 plt.savefig()将输出图形存储为文件,默认PNG格式,可以通过dpi修改输出质量(每英寸上输出点的数量)。
pyplot的绘图区域 plt.subplot(nrows, ncols, plot_number) • nrows:横轴数量 • ncols:纵轴数量 • plot_number:绘图区编号 例 :plt.subplot(2, 1, 1)把画布分成2行1列,在第一个图上绘画
pyplot的横纵坐标 plot.axis()设定横纵坐标尺度 , 参数是四个变量的列表:横坐标起始值,横坐标终止值,纵坐标起始值,纵坐标终止值 例:
import matplotlib. pyplot as plt plt plot( [ 0 , 2 , 4.6 , 8 ] , [ 3 , 1 , 45 , 2 ] ) plt ylabel( " Grade" ) plt axis( [ - 1 , 10 , 0 , 6 ] ) plt show( )
生成图片:横纵坐标
pyplot的表格模式 plt.grid(True)指在图像中加入坐标轴的表格模式。
pyplot的plot()函数 plt.plot(x, y, format_string, **kwargs ) • x : X轴数据,列表或数组,可选 • y : Y轴数据,列表或数组 • format_string : 控制曲线的格式字符串,可选
• **kwargs : 第二组 或更多(x,y,format_string),可以绘制多条曲线
plt.plot()只有一个输入列表或数组时: • 参数被当作y轴, • X轴以索引自动生成。
plt.plot(x,y)当有两个以上参数时 • 按照X轴和Y轴顺序绘制数据点
注 :当绘制多条曲线时,各条曲线的x不能省略
颜色字符 : 风格字符 : 标记字符 :
多条曲线代码案例 import matplotlib. pyplot as pltimport numpy as np a= np. arange( 10 ) plt. plot( a, a* 1.5 , 'go-' , a, a* 2.5 , 'rx' , a, a* 3.5 , '*' , a, a* 4.5 , 'b-' ) plt. show( )
图片:
一条曲线的情况下 color : 控制颜色,color=‘green’ linestyle : 线条风格,linestyle=‘dashed’ marker : 标记风格,marker=‘o’ markerfacecolor : 标记颜色,markerfacecolor=‘blue’ markersize : 标记尺寸,markersize=20 linewidth :线的粗细……
代码实现 import matplotlib. pyplot as pltimport numpy as np a = np. arange( 10 ) plt. plot( a, a* 1.5 , color= 'green' , linestyle= "dashed" , marker= 'o' , markerfacecolor= 'blue' , markersize= 20 ) plt. show( )
图片:
pyplot的中文显示 pyplot中不默认支持中文的显示,需要增加额外的代码辅助
方法一:rcParams pyplot并不默认支持中文显示,需要rcParams 修改字体实现 rcParams是pyplot库中改变全局字体 的资源库
例子 :matplotlib.rcParams[‘font.family’]=‘Kaiti’
方法二:fontproperties 例子 :plt.xlabel(“横轴:时间”,fontproperties =‘SimHei’, font.size = 20)
pyplot的文本显示 pyplot()的文本显示函数 函数 说明 plt.xlabel(): 对x轴增加文本标签。 plt.ylabel(): 对y轴增加文本标签。 plt.title(): 对图形整体增加文本标签,放置在整个图形的正上方。 plt.text(): 在任意位置增加文本。 plt.annotate(): 在图像中增加带箭头的注解。
添加图例 plt.legend() plt.legend(“y=cos(2\pi x)”], loc = ‘upper center’) loc是位置,前面是名称
pyplot()的文本显示-annotate 添加注释:plt.annotate(string, xy=arrow_crd, xytext=text_crd,arrowprops=dict) 第一个参数表示要加入的注解字符串, 第二个指箭头所在位置, 第三个指文本所在位置, 第四个指为箭头显示的属性。
案例: 代码:
import numpy as npimport matplotlib. pyplot as plta = 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( r'正弦波实例 $y=cos(2\pi x)$' , fontproperties= 'SimHei' , fontsize= 25 ) plt. annotate( r'$\mu=100$' , xy= ( 2 , 1 ) , xytext= ( 3 , 1.5 ) , arrowprops= dict ( facecolor= 'black' , shrink= 0.1 , width= 2 ) ) plt. axis( [ - 1 , 6 , - 2 , 2 ] ) plt. grid( True ) plt. show( )
图片
pyplot()的子绘图区域 自定义区域plt.subplot2grid() plt.subplot2grid(GridSpec, CurSpec,colspan=1, rowspan=1) 理念:设定网格,选中网格,确定选中行列区域数量,编号从0开始
例1: #共计分为3行3列,ax1从(0,0)算起,占据3列 plt.subplot2grid((3,3),(0,0), colspan=3) plt.subplot2grid((3,3),(1,0), colspan=2) #ax2 plt.subplot2grid((3,3),(1,2), rowspan=2) #ax3 例2: #共计分为3行3列,ax1从(0,0)算起,占据3列1行 ax1=plt.subplot2grid((3,3),(0,0),colspan=3,rowspan=1) #colspan,rowspan默认都为1
GridSpec类 概念:是pyplot中一个用来进行子区域设计和选定的类。可以和subplot结合使用。 案例 :