python matplotlib.pyplot学习记录
matplotlib是python中很强大的绘图工具,在机器学习中经常用到
首先是导入
import matplotlib.pyplot as plt
plt中有很多方法,记录下常用的方法
plt.plot()该方法用来画图,第一个参数是y值,第二个参数是x值,第三个参数是由两个值构成的字符串,第一个值是颜色,第二个值是线的类型
颜色的可选值有
‘b’ | blue |
‘g’ | green |
‘r’ | red |
‘c’ | cyan |
‘m’ | magenta |
‘y’ | yellow |
‘k’ | black |
‘w’ | white |
线的类型有
'-' |
solid line style |
'--' |
dashed line style |
'-.' |
dash-dot line style |
':' |
dotted line style |
'.' |
point marker |
',' |
pixel marker |
'o' |
circle marker |
'v' |
triangle_down marker |
'^' |
triangle_up marker |
'<' |
triangle_left marker |
'>' |
triangle_right marker |
'1' |
tri_down marker |
'2' |
tri_up marker |
'3' |
tri_left marker |
'4' |
tri_right marker |
's' |
square marker |
'p' |
pentagon marker |
'*' |
star marker |
'h' |
hexagon1 marker |
'H' |
hexagon2 marker |
'+' |
plus marker |
'x' |
x marker |
'D' |
diamond marker |
'd' |
thin_diamond marker |
'|' |
vline marker |
'_' |
hline marker |
如‘r.’即红色的点
可以一次性画出多个点
plt.plot([1,2,3,4])会画出一条经过(0,1),(1,2),(2,3),(3,4)的直线
如果没有指定x值,默认从0,开始,步长为1
plt.scatter()
画散点图
常用的参数有
x,y 即x,y轴的值,是个类似数组的对象
c ,颜色,可以是一个颜色字符串如‘r’,也可以是一个颜色的序列长度和x,y相同
具体的用法可以上官网搜索
plt.axis([xmin, xmax, ymin, ymax])指定x轴和y轴的起始点和结束点
plt.xlabel('x')
plt.ylabel('y')
为x,y轴分别指定一个名字
plt.figure()画多张图,传入一个递增的数字
plt.subplot(numrows, numcols, fignum)将图分成numrows行,numcols列
plt.clf()清除之前画的点
plt.cla()清除当前轴
plt.text(x1,x2,text)在某个点上添加文字
plt.title(title)给图取个标题
plt.show()将图显示出来
plt.axvline(x=0,ymin=0,ymax=1,hold=None, **kwargs)
在轴上添加一条垂直线,默认是在图的底部到顶部x=0处画一条垂直线
x,垂直线的x坐标
ymin, 在0-1之间,0是底部,1是顶部,默认0
ymax,在0-1之间,0是底部,1是顶部,默认1
plt.axhspan(ymin, ymax, xmin=0,xmax=1, hold=None, **kwargs)
绘制从ymin到ymax的水平跨度(矩形)。使用xmin = 0和xmax = 1 的默认值
plt.axhline(y=0,xmax=0,ymax=1, hold=None, **kwargs)
同axvline,在轴上添加一条水平线
plt.yticks()
获取或设置y轴上坐标点
axis是设置起始点和结束点,yticks可以设置中间点,xticks同
plt.ylim()
获取或这是y轴的起始点和结束点,xlim同,两者结合即axis
画3D散点图
from mpl_toolkits.mplot3d import Axes3D(不导入的话会报错,没有3d的projection)
ax = plt.subplot(111, projection='3d')
ax.scatter(X,Y,Z,c='red')
plt.show()
官方文档http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.plot