分享

Python中Matplotlib绘图

 枯井道人 2016-12-10

Matplotlib绘图是最著名的Python绘图库,主要用于二维绘图,画图质量高,方便快捷的绘图模块;

<1>绘图API--pyplot模块

<2>集成库---pylab模块(包含Numpy和pyplot中常用的函数)

我们可以打开matplotlib的官网点击打开链接点击任意一个图下面均有代码,例如:


效果图如下:


怎么样很漂亮吧!

2、使用matplotlib画折线图使用pyplot:

[python] view plain copy
在CODE上查看代码片派生到我的代码片
  1. import numpy as np  
  2. import matplotlib.pyplot as plt  
  3. x=np.arange(1,4,0.1)  
  4. plt.plot(x,x**2,x,x+2)  

很简单,和matlab很像,plt.plot(x,y)即可;下面是画出上面图像的散点图,加‘o’即可:

[python] view plain copy
在CODE上查看代码片派生到我的代码片
  1. <span style="font-size:18px;">import numpy as np  
  2. import matplotlib.pyplot as plt  
  3. x=np.arange(1,4,0.1)  
  4. plt.plot(x,x**2,'o',x,x+2,'o')</span>  


下面我们再画出其中一个的柱状图,也特别简单将plt.plot变为plt.bar即可:

[python] view plain copy
在CODE上查看代码片派生到我的代码片
  1. <span style="font-size:18px;">import numpy as np  
  2. import matplotlib.pyplot as plt  
  3. x=np.arange(1,4,0.1)  
  4. plt.bar(x,x**2)</span>  


3、图的属性设置

<1>绘图颜色和线条类型的改变

[python] view plain copy
在CODE上查看代码片派生到我的代码片
  1. <span style="font-size:18px;">import numpy as np  
  2. import matplotlib.pyplot as plt  
  3. x=np.arange(1,4,0.1)  
  4. plt.plot(x,x**2,'g--',x,x+2,'rD')</span>  


[python] view plain copy
在CODE上查看代码片派生到我的代码片
  1. import numpy as np  
  2. import matplotlib.pyplot as plt  
  3. x=np.arange(1,4,0.1)  
  4. plt.plot(x,x**2,'rv',x,x+2,'gp')  

可以在shell通过:

import matplotlib.pyplot as plt
help(plt.plot)查找相应的颜色和线型

<2>增加文字,横轴、纵轴、图

[python] view plain copy
在CODE上查看代码片派生到我的代码片
  1. <span style="font-size:18px;">import numpy as np  
  2. import matplotlib.pyplot as plt  
  3. x=np.arange(1,4,0.1)  
  4. plt.plot(x,x**2,'rv',x,x+2,'gp')  
  5. plt.title('x^2 && x+2')  
  6. plt.xlabel('variable x')  
  7. plt.ylabel('dependent variable y')</span>  


<3>其他属性;图的大小,图例

[python] view plain copy
在CODE上查看代码片派生到我的代码片
  1. <span style="font-size:18px;">import numpy as np  
  2. import matplotlib.pyplot as plt  
  3. x=np.arange(1,4,0.1)  
  4. plt.figure(figsize=(8,6),dpi=100)#大小、精度  
  5. plt.plot(x,x**2,color='red',linestyle='--',linewidth=3,label='line1')  
  6. plt.plot(x,x+2,color='blue',linestyle='',marker='*',linewidth=3,label='line2')  
  7. plt.legend(loc='upper left')  
  8. plt.show()</span>  


<4>子窗口

[python] view plain copy
在CODE上查看代码片派生到我的代码片
  1. import numpy as np  
  2. import matplotlib.pyplot as plt  
  3. x=np.arange(1,4,0.1)  
  4. plt.figure(figsize=(8,6),dpi=100)  
  5. plt.subplot(211)  
  6. plt.plot(x,x**2,color='red',linestyle='--',linewidth=3,label='line1')  
  7. plt.legend(loc='upper left')  
  8. plt.subplot(212)  
  9. plt.plot(x,x+2,color='blue',linestyle='',marker='*',linewidth=3,label='line2')  
  10. plt.legend(loc='upper left')  
  11. plt.show()  
[python] view plain copy
在CODE上查看代码片派生到我的代码片
  1. #这里subplot(211)代表2行1列第1个图  

[python] view plain copy
在CODE上查看代码片派生到我的代码片
  1. import numpy as np  
  2. import matplotlib.pyplot as plt  
  3. x=np.arange(1,4,0.1)  
  4. plt.figure(figsize=(8,6),dpi=100)  
  5. plt.subplot(121)  
  6. plt.plot(x,x**2,color='red',linestyle='--',linewidth=3,label='line1')  
  7. plt.legend(loc='upper left')  
  8. plt.subplot(122)  
  9. plt.plot(x,x+2,color='blue',linestyle='',marker='*',linewidth=3,label='line2')  
  10. plt.legend(loc='upper left')  
  11. plt.show()  

[python] view plain copy
在CODE上查看代码片派生到我的代码片
  1. import numpy as np  
  2. import matplotlib.pyplot as plt  
  3. x=np.arange(1,4,0.1)  
  4. plt.figure(figsize=(8,6),dpi=100)  
  5. plt.subplot(221)  
  6. plt.plot(x,x**2,color='red',linestyle='--',linewidth=3,label='line1')  
  7. plt.legend(loc='upper left')  
  8. plt.subplot(222)  
  9. plt.plot(x,x+2,color='blue',linestyle='',marker='*',linewidth=3,label='line2')  
  10. plt.legend(loc='upper left')  
  11. plt.subplot(223)  
  12. plt.plot(x,x**3,color='black',linestyle='',marker='+',linewidth=3,label='line3')  
  13. plt.legend(loc='upper left')  
  14. plt.subplot(224)  
  15. plt.plot(x,x+9,color='green',linestyle='',marker='p',linewidth=3,label='line4')  
  16. plt.legend(loc='upper left')  
  17. plt.show()    

<5>另外一种绘制子图的方式-axes

[python] view plain copy
在CODE上查看代码片派生到我的代码片
  1. import numpy as np  
  2. import matplotlib.pyplot as plt  
  3. plt.axes([0.1,0.1,0.8,0.8])  
  4. x=np.arange(1,4,0.1)  
  5. plt.plot(x,x**2,color='red',linestyle='--',linewidth=3,label='line1')  
  6. plt.legend(loc='upper left')  
  7. plt.axes([0.55,0.15,0.3,0.3])  
  8. plt.plot(x,x+2,color='blue',linestyle='',marker='*',linewidth=3,label='line2')  
  9. plt.legend(loc='upper left')  
  10. plt.show()  
其中plt.axes(距左边的距离,距底部的距离,图的宽,图的高)



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多