matpyplotlib 简单使用小结

# coding: utf-8

# In[3]:


from matplotlib import pyplot as plt
import numpy as np
#matplotlib 是面向对象的绘图,每个元素都有一个对象与之对应
#为了绘图方便,matplotlib提供matplot模块,将面向对象的绘图库包装成只使用函数的api


# In[20]:


get_ipython().magic(u'matplotlib inline')
#%config InlineBackend.close_figures = False


# In[10]:


x = np.linspace(0,10,1000)
y = np.sin(x)
z = np.cos(x**2)


# In[22]:


plt.figure(figsize=(8,4),dpi =200)#新建一个figure(图表)并将他作为当前figure对象
plt.plot(x,y,label = '$sin(x)$',color='g',linewidth = 2)#label将在图示中显示,如前后有$,则将其转化为数学公式,linewidth 可缩写为lw
plt.plot(x,z,"b--",label = '$cos(x)$')#"b--"b代表蓝色,--代表虚线


# In[23]:


#plt.ylim(0,0.5)
#plt.xlim(2,4)
plt.xlabel('Times')
plt.ylabel('Volt')
plt.legend()#显示图示
plt.show()
plt.savefig('/home/fangsh/dlym/test.png',dpi = 120)#设置分辨率为120,本例figsize=(8,4),所以图像分辨率是960x480
#plt.savefig plt.imsave()的区别
#plt.savefig(outp_dir)保存当前的图表fig
#plt.imsave(outp_dir,img)保存img


# In[34]:


#pyplot模块保存了当前图表以及当前子图的信息
#可通过gcf()gca()获得这两个对象 gcfgir current figure的缩写,gcaget current axes的缩写
#pyplot大多函数都是对当前的对象(figure或者axes)进行处理,如plot(),xlabel(),savefig()
#可调用对象的属相设置方法set_*()或者plot模块的属相设置函数setp()来设置属性
#同样可通过对象的get_*()plot模块的getp()老获取对象属性
x = np.arange(0,5,0.1)
plt.figure(figsize=(4,3))
line = plt.plot(x,np.sin(x),x,np.cos(x))[1]#plot返回一个元素类型为line2D的列表(每个元素代表一个曲线)
line.set_alpha(0.5)
plt.setp(line,color="b",lw=5)
print line.get_color(),plt.getp(line,'axes')#getp()指定属性名只返回对象的某个属性,不指定属性名输出对象的所有属性和值


# In[40]:


#subplot绘制多子图
#subplot(numrows,numcols,plotnum)整个绘图区域被分为numrow行和numcols列,plot指定所创建的axes对象的区域
#如果numrows,numcols,plotnum都小于10,可将是三个数写成一个整数。
#subplot所创建的对象,可用变量保存,用sca()函数可选择使之成为当前axes对象。
#plt.figure(2)来选择要操作的图表序号
fig,axes = plt.subplots(2,3)#subplots同时创建多个子图,并返回当前的figure(图表)和子图列表
[a,b,c],[d,e,f] = axes
#可调用subplot2grid()进行更复杂的表格布局。类似与excel
#bplot2grid(shape,rowspan=1.colspan=1,**kwargs)
#shape表格形状的元祖,loc为子图左上角的坐标(行,列),rowspan.colspan子图所在的行数列数
fig = plt.figure(figsize=(6,6))
ax1= plt.subplot2grid((3,3),(0,0),colspan=3)
ax2 = plt.subplot2grid((3,3),(1,0),rowspan=2,colspan=2)
ax3 = plt.subplot2grid((3,3),(1,2),rowspan=2)


# In[48]:


#散点图的绘制------------画数据样本
plt.figure(figsize=(8,4))
x = np.random.random(100)
y = np.random.random(100)
plt.scatter(x,y,s=x*1000,c=y,marker=(5,1),alpha=0.8,lw=3,facecolor='none')
#s设置大小,c颜色可以是一维数组,也可以是二维数组,表示每个点的RGB颜色
#marker设置点的形状是一个元祖(),第一个代表多边形的边数,第二个代表多边形的形状
#alpha设置透明度,lw是线宽,facecolors ='none'代表三列点没有填充色


# In[ ]:


#等高图的绘制------------画决策边界
#plt.contourfx,y,z)和plt.contour(x,y,z)用于绘制三维图形,x,y是等长的一维数组,z为二维数据表示(x,y)处的函数映射值。
#plt.contour(x,y,z)不同的分割线,plt.contourfx,y,z)会在分割线之间填充颜色,常用于机器学习模型的可视化



#可以为图表fig添加事件
fig.canvas.mpl_connect('key_press_event',on_key_press)
#'key_press_event'事件发生时,执行on_key_press函数
#支持的事件
#  button_press_event      按下鼠标
#  button_release_event    释放鼠标按键
#  key_press_event         按下键盘按键
#  key_release_event       释放键盘按键
#  figure_leave_event      鼠标移出图表
#  axes_enter_enevt        鼠标移入子图
#  axes_leave_enevt        鼠标移出子图
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值