Matplotlib组成元素
matplotlib简介
- 官方文档:
- https://matplotlib.org/
- 支持图库:
- http://matplotlib.org/gallery.html
- Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。
- Matplotlib基础知识
- 1.Matplotlib中的基本图表包括的元素
- x轴和y轴
- 水平和垂直的轴线
- x轴和y轴刻度
- 刻度标示坐标轴的分隔,包括最小刻度和最大刻度
- x轴和y轴刻度标签
- 表示特定坐标轴的值
- 绘图区域
- 实际绘图的区域
- 2.hold属性
- hold属性默认为True,允许在一幅图中绘制多个曲线;将hold属性修改为False,每一个plot都会覆盖前面的plot。
- 但是不推荐去动hold这个属性,这种做法(会有警告)。因此使用默认设置即可。
- 3.网格线
- grid方法
- 使用grid方法为图添加网格线
- 设置grid参数(参数与plot函数相同)
- .lw代表linewidth,线的粗细
- .alpha表示线的明暗程度
- 4.axis方法
- 如果axis方法没有任何参数,则返回当前坐标轴的上下限 - 5.xlim方法和ylim方法
- 除了plt.axis方法,还可以通过xlim,ylim方法设置坐标轴范围
- 6.legend方法
- 两种传参方法:
- 【推荐使用】在plot函数中增加label参数
- 在legend方法中传入字符串列表 配置matplotlib参数 永久配置
- matplotlib配置信息是从配置文件读取的。在配置文件中可以为matplotlib的几乎所有属性指定永久有效的默认值。
- 动态配置
- 程序中配置代码 To finetune settings only for that execution; this overwrites
every configuration file. - 配置方法的优先级为: Matplotlib functions in Python code, matplotlibrc file in the current directory, User matplotlibrc file, Global matplotlibrcfile, rcParams方 法, 通过rcParams字典访问并修改所有已经加载的配置项。
- 程序中配置代码 To finetune settings only for that execution; this overwrites
- 【推荐使用】在plot函数中增加label参数
- 两种传参方法:
- 1.Matplotlib中的基本图表包括的元素
Matplotlib绘图基础
- 导入模块
import matpltlib.pyplot as plt
import numpy as np
import pandas as pd
- 绘图函数基本形式
plt.图名(x,y,'marker 类型')
#例如
plt.plot(x,y)
plt.plot(x,y,'o-')
plt.plot(x,y,'o-')
plt.scatter(x,y)
plt.scatter(x,y,linewidths=x,marker='o')
参数x,y,一般为一维数据,比如np数组、列表。
- 简单绘图
#简单的绘图
x=np.linspace(0,2*np.pi,50)
plt.plot(x,np.sin(x))
plt.show() #显示图形
为绘制函数传入多个数据集
#一张图上绘制两个数据集
x=np.linspace(0,2*np.pi,50)
plt.plot(x,np.sin(x),x,np.sin(2*x))
plt.show()
- 自定义外观
x=np.linspace(0,2*np.pi,50)
plt.plot(x,np.sin(x),'r-o',x,np.cos(x),'g--',x,np.log(x),'bs')
plt.show()
b:蓝色 r:红色 c:青色 m:洋红色
g:绿色 y:黄色 k:黑色 w:白色
‘’:直线 ’ _’:虚线 ‘:’:点线 ‘-.’:点划线
‘.’:点 ‘o’:圆 s’:方形 ‘^’:三角形
更多标记样式可参考http://matplotlib.org/api/markers_api.html
- figuer——多个画布窗口
x=np.linspace(-3,3,50)
y1=2*x+2
y2=x**2
plt.figure()
plt.plot(x,y1)
plt.figure(4,figsize=(8,5))
plt.plot(x,y1,color='red',linewidth=2.0,linestyle=':')
plt.plot(x,y2)
plt.show()
figure窗口可标记编号,提供一个ID号,可索引调出窗口
x=np.linspace(-3,3,50)
y1=2*x+2
y2=x**2
plt.figure(1)
plt.subplot(211)
plt.plot(x,y1)
plt.subplot(212)
plt.plot(x,y2)
plt.figure(2)
plt.plot(x,y2)
#切换到figure 1:子图subplot(212)仍旧是当前图
plt.figure(1)
#令子图subplot(211)成为figure 1 d的当前图
plt.subplot(211)
#添加subplot 211 的标题
plt.title('Easy as 1,2,3')
plt.show()
- Subplot——子图
x=np.linspace(0,2*np.pi,50)
plt.subplot(2,2,1)
plt.plot(x,np.sin(x),'r')
plt.subplot(2,2,2)
plt.plot(x,np.cos(x),'g')
plt.subplot(223)
plt.plot(x,np.log(x),'b')
plt.subplot(224)
plt.plot(x,x**2,'y')
plt.show()
x=np.linspace(0,2*np.pi,50)
plt.subplot(2,1,1)
plt.plot(x,np.sin(x),'r')
plt.subplot(2,3,4)
plt.plot(x,np.cos(x),'g')
plt.subplot(235)
plt.plot(x,np.log(x),'b')
plt.subplot(236)
plt.plot(x,x**2,'y')
plt.show()
- 修改坐标范围
x=np.arange(-5.0,5.0,0.02)
y1=np.sin(x)
plt.figure(1)
plt.subplot(211)
plt.plot(x,y1)
plt.subplot(212)
plt.axis([-2.5,2.5,-1,1])
plt.plot(x,y1)
plt.show()
- 标题、标签和图例
#添加标题,坐标轴标记和图例
x=np.linspace(0,2*np.pi,50)
plt.plot(x,np.sin(x),'r-x',label='Sin(x)')
plt.plot(x,np.cos(x),'g-^',label='Cos(x)')
#展示图例
plt.legend()
#给x轴添加标签
plt.xlabel('Rads')
#给y轴添加标签
plt.ylabel('Amplitude')
#添加图形标题
plt.title('Sin and Cos Waves')
plt.show()
- 添加文字说明
mu,sigma=100,15
x=mu+sigma*np.random.randn(10000)
#数据的直方图
n,bins,patches=plt.hist(x,50,density=1,facecolor='g',alpha=0.75)
plt.xlabel('Smarts')
plt.ylabel('Probability')
#添加标题
plt.title('Histogram of IQ')
#添加文字
plt.text(60,.025,r'$\mu=100,\\sigma=15$')
plt.axis([40,160,0,0.03])
plt.grid(True)
plt.show()
- 设置刻度标签
X=np.linspace(-np.pi,np.pi,256,endpoint=True)
C,S=np.cos(X),np.sin(X)
plt.figure(figsize=(8,6),dpi=80)
plt.plot(X,C,color="blue",linewidth=1.0,linestyle=“-”)
plt.axis([-4,4,-1.2,1,2])
#设置刻度标签
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$+\pi/2$',r'$+\pi$'])
plt.yticks([-1,0,+1],[r'$-1$',r'$0$',r'$+1$'])
plt.show()
- Seaborn简介()
- 官方网站:
- http://seaborn.pydata.org/
- 官方网站:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn sa sns
- 绘图函数基本形式
sns.图名(x='X轴 列名',y='Y轴 列名',data=原始数据df对象)
#或
sns.图名(x='X轴 列名',y='Y轴 列名',hue=‘分组绘图函数’,data=原始数据df对象)
#或
sns.图名(x=np.array,y=np.array[,...])