python画图初体验[matplotlib/pylab]

在学习机器学习SVM算法的时候第一次体会到需要将算好的数据展现出看,还是离不开画图的工具,幸好python和画图方法和matlab极其相似,甚至名字都差不多。


其中将训练集数据化成散点图,将训练好的超平面用线画出来等等基本的画图方法,也在SVM代码里展现了,然后顺便我就多去看了下,巩固了下画图方法。
注意到存在pylab和pylpot的区别,使用方法:

import pylab as pl
import matplotlib.pyplot as plt

两种用法很相似,查了查,应该是pylab模块集成了numpy的一些功能,既可以进行数据运算,也可以直接画图,使用起来比较方便,但也是可以使用

import numpy as np
import matplotlib.pyplot as plt

来做数据处理和画图。

plt.plot(x,y,format_string,**kwargs)#应该是最常用的

其中参数整理如下:
这里写图片描述
这里写图片描述这里写图片描述
这里写图片描述

简单示例代码

'''
matplotlib.pyplot
pylab]

'''
import numpy as np
import pylab as pl
import matplotlib.pyplot as plt

#散点图
np.random.seed(0)  #随机数生成后不变
x = np.r_[np.random.randn(20,2)-[2,2],np.random.randn(20,2)+[2,2]]
#pl.plot(x[:,0],x[:,1])
y = [1]*20 + [0]*20

pl.subplot(311) #区域画图
pl.scatter(x[:,0],x[:,1],c = y,cmap=pl.cm.Paired)
#pl.axis("tight")

pl.subplot(312)
t = np.arange(-1,2,.01)
s = np.sin(2*np.pi*t)
pl.axis([-1,2,-1,1])
pl.plot(t,s,'y--')
l = pl.axhline(linewidth = 2,color ='k')
l = pl.axvline(x=0,ymin=0,linewidth = 4,color='b')
p = pl.axhspan(0.25,0.75,facecolor='g',alpha=0.5)
p = pl.axvspan(1.25,1.55,facecolor='r',alpha=0.5)

pl.ylabel("纵轴",fontproperties='SimHei',fontsize=10) #设置 纵坐标标记,中文显示
pl.xlabel("横轴",fontproperties='SimHei',fontsize=10)

pl.subplot(313)
pl.scatter(10*np.random.randn(10),10*np.random.randn(10))

pl.show()

效果图:
这里写图片描述
对于基本函数画法:
这里写图片描述
这里写图片描述
这里写图片描述
示例:

'''
基础图标函数

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

plt.subplot(211)

labels ='Frogs','Hogs','Dogs','Logs'
sizes = [15,30,45,10]

explode = (0,0.1,0,0)
plt.pie(sizes,explode=explode,labels =labels,autopct="%1.1f%%",
        shadow=False,startangle=90)

plt.subplot(212)
np.random.seed(0)
mu,sigma=100,20  #均值和标准差

a = np.random.normal(mu,sigma,size=100)

plt.hist(a,40,normed=1,histtype='stepfilled',facecolor='b',alpha=0.75)
plt.title('Histogram')

plt.show()

效果图:
这里写图片描述

展开阅读全文

没有更多推荐了,返回首页