最近开始学python,作为python小白把自己每天学习的笔记写成博客来记录下自己的生活吧~~此博客代码和知识点主要来自《python编程从数据分析到机器学习实践》~刘瑜著
note1:python中的matplotlib库
matplotlib绘画一张二维图主要有7部分组成
- Figure
- axes
- axis
- data
- title
- axis附带的tick,tick label
- lable
形象比喻画一张二维图画板——figure
画纸——axex+data(用于确定绘图辅助区域)
画笔——plot
标题——title
标签——label
plot(*args,fmt,data=None,**kwargs)
*args :'arguments’的缩写,主要接受(x,y的坐标值)xy可以是元组,列表,或者数组的值,当仅写一个时表示x=y
fmt:字符串[color][market][line],用于指定线的颜色/标记图标,线形
data:带有标记数据的对象。给定的话提供标签名称,就可以通过x,y坐标绘制
**kwargs:用键值对形式指定的线的一些属性,如linewidth=2指定线宽为2,color=‘green’线的颜色是绿色,linestyle,markersize指代图标大小
eg:
import matplotlib.pyplot as plt
plt.plot(10,10,'o')#在(10,10)点处用o图标注
plt.show() #显示图形
plt的用法
- 用数组绘制若干的点``
import numpy as np
import matplotlib.pyplot as plt
x=np.array([0,10,5,5])
y=np.array([5,5,0,10])
plt.plot(x,y,'o')
plt.show()
关于plot(),线的颜色,图标和线形
有两种方法
1.字符串设置
import matplotlib.pyplot as plt
import numpy as np
t1=np.arange(0.0,5.0,0.02) #x轴0——5之间间隔为002
plt.plot(t1,np.sin(2*np.pi*t1),'go--') #g为绿色,o为图标,——为虚线
plt.show()
2键值对设置.
import matplotlib.pyplot as plt
import numpy as np
t1=np.arange(0.0,5.0,0.02) #x轴0——5之间间隔为002
plt.plot(t1,np.sin(2*np.pi*t1),color='r',marker='v',linestyle='-') #r为红色色,v为下三角形,—为实线
plt.show()
- 注释
1.test()文本标题注释
plt.test(x,y,s,fontdict=None,withdash=False,**kwargs)
参数说明如下:
(1)x,y为标注在绘图区域位置
(2)s为文本内容
(3)fontdict为默认文本属性字典
(4)withdash
(5)**kwargs:用键值形式代替fontdict参数,内容有如下:
fontsize:表示字体大小
verticalalignment:垂直对齐方式 ,参数:[ ‘center’ | ‘top’ | ‘bottom’ | ‘baseline’ ]
horizontalalignment:水平对齐方式 ,参数:[ ‘center’ | ‘right’ | ‘left’ ]
xycoords选择指定的坐标轴系统:
figure points:图左下角的点
figure pixels:图左下角的像素
figure fraction:图的左下部分
axes points:坐标轴左下角的点
axes pixels:坐标轴左下角的像素
axes fraction:左下轴的分数
data:使用被注释对象的坐标系统(默认)
polar(theta,r):if not native ‘data’ coordinates t
eg
import matplotlib.pyplot as plt
import numpy as np
plt.text(1.5,0.5,r'sin()',fontsize=15,fontweight='heavy')
t1=np.arange(0.0,5.0,0.02)
plt.plot(t1,np.sin(2*np.pi*t1),color='r',marker='v',linestyle='-')
plt.show()
2.arrow()箭头标注
plt.arrow(x,y,dx,dy,**kwargs)
dx,dy:箭头沿x,y的长度,箭头头部坐标为x+dx,y+dy
**kwargs:Width 箭尾宽度
head_width箭头宽度
head_length箭头长度
import matplotlib.pyplot as plt
import numpy as np
plt.text(1.5,0.5,r'sin()',fontsize=15,fontweight='heavy')
plt.arrow(1.55,0.63,-0.12,0.2,width=0.05,fc='r')#增加红色箭头
t1=np.arange(0.0,5.0,0.02)
plt.plot(t1,np.sin(2*np.pi*t1),color='r',marker='v',linestyle='-')
plt.show()
3.annotate复杂标注
plt.annotate(s,xy,*args,**kwargs)
eg:
import matplotlib.pyplot as plt
import numpy as np
plt.annotate('hys',xy=(4,2),xytext=(4.6,0.25))
t1=np.arange(0.0,5.0,0.02)
plt.plot(t1,np.sin(2*np.pi*t1),color='g',marker='+',linestyle='-.')
plt.show()
- 图标和文字的设置**
1.直接设置fontproperties(字体属性)
例如
plt.xlabel('设置x轴中文显示',fontproperties="STCAIYUN",fontsize=20)
2.指定字库路径
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.font_manager import FontProperties #导入字体属性设置函数
font=FontProperties(fname=r"c:\windows\fonts\simsun.ttc") #从windows中带入宋体
plt.xlabel('设置x轴中文显示',fontproperties="STCAIYUN",fontsize=20)
plt.ylabel('设置y轴中文显示',fontproperties="STCAIYUN",fontsize=20)
t1=np.arange(0.0,5.0,0.02)
plt.plot(t1,np.sin(2*np.pi*t1),color='g',marker='+',linestyle='-.')
plt.show()
- 多画板绘图
1.显示多画板Figure界面
matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class ‘matplotlib.figure.Figure’>, clear=False, **kwargs)
num 表示的是第几个图
figsize(float,float):图的长与宽
dpi:分辨率 全称 dots per inch
facecolor:背景颜色
edgecolor:边框颜色
frameon:设置是否显示边框
eg
s1=plt.figure('OK',figsize=(7,5),facecolor='g',edgecolor='r')
#设置北京颜色为绿色,边框颜色为红色,长7宽5
显示多个绘图子页面
函数subplot(*args,**kwargs)
*args:指定(nrows,ncols,index)其中nrows,ncols分别是吧figure分成几行几列,index是指定一张subplot的图顺序具体位置例如(2,2,1)表示把figure分成四个小图的第一张小图
**kwargs:
eg:
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.font_manager import FontProperties
t1=np.arange(0.0,5.0,0.1)
t2=np.arange(0.0,5.0,0.02)
plt.figure(1)
plt.subplot(2,2,1,facecolor='m') #把figure1分成2行2列,第1幅图加背景色
plt.plot(t1,t1,'bo','k')
plt.subplot(2,2,2,title='cos line')#第2幅图是cos函数图
plt.plot(t2,np.cos(2*np.pi*t2),'r--')
plt.subplot(2,2,3,projection='polar')#第3幅图是223指定坐标等价
plt.plot(t2,t2,'g--')
plt.subplot(2,2,4,frameon=False)#第4幅图是cos函数图,无边框
plt.plot(t2,np.cos(2*np.pi*t2),'r--')
plt.show()
散点图
(机器学习中用的比较多的散点图) scatter(matplotlib.pyplot.scatter(x, y, s=None,
c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None,
alpha=None, linewidths=None, verts=None, edgecolors=None, hold=None,
data=None, **kwargs)
方法相熟:https://blog.csdn.net/weixin_40941966/article/details/80896272?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159576966719725250134636%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=159576966719725250134636&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v3~pc_rank_v3-1-80896272.pc_ecpm_v3_pc_rank_v3&utm_term=matplotlib.pyplot.scatter&spm=1018.2118.3001.4187