首先补充一下:两种体系7种颜色 r g b y m c k (红,绿,蓝,黄,品红,青,黑)

在科研的过程中,坐标系中的XY不一定就是等尺度的。例如在声波中对Y轴取对数。肆意我们也必须知道这种坐标系如何画出来的。


 1:对数坐标图

    有3个函数可以实现这种功能,分别是:semilogx(),semilogy(),loglog()。它们分别表示对X轴,Y轴,XY轴取对数。下面在一个2*2的figure里面来比较这四个子图(还有plot())。



[python] 

1. def drawsemilogx():  
2. 0.1,1000,1000)    
3. 1/(1+0.1j*w))    
4.            
5. 221)    
6. 2)    
7. 'X')    
8. 'y');  
9.           
10. 222)    
11. 2)    
12. 0,1.5)    
13. 'log(X)')    
14. 'y')    
15.           
16. 223)    
17. 2)    
18. 0,1.5)    
19. 'x')    
20. 'log(y)')    
21.           
22. 224)    
23. 2)    
24. 0,1.5)    
25. 'log(x)')    
26. 'log(y)')    
27.     plt.show()



如上面的代码所示,对一个低通滤波器函数绘图。得到四个不同坐标尺度的图像。如下图所示:

Python当中画柱状图 python画柱状图颜色不同_python

2,极坐标图像
    极坐标系中的点由一个夹角和一段相对于中心位置的距离来表示。其实在plot()函数里面本来就有一个polar的属性,让他为True就行了。下面绘制一个极坐标图像:



[python]


1. def drawEightFlower():  
2.       
3. 0,2*np.pi,0.02)    
4. 121,polar=True)    
5. 2*np.ones_like(theta),lw=2)    
6. 6,'--',lw=2)    
7.            
8. 122,polar=True)    
9. 5*theta),'--',lw=2)    
10. 2*np.cos(4*theta),lw=2)    
11. 0.5,2,0.5),angle=45)    
12. 0,45,90]);  
13.       
14.     plt.show();


整个代码很好理解,在后面的13,14行没见过。第一个 plt.rgrids(np.arange(0.5,2,0.5),angle=45) 表示绘制半径为0.5 1.0 1.5的三个同心圆,同时将这些半径的值标记在45度位置的那个直径上面。 plt.thetagrids([0,45,90]) 表示的是在theta为0,45,90度的位置上标记上度数。 得到的图像是:

Python当中画柱状图 python画柱状图颜色不同_matplotlib_02



3,柱状图:

核心代码matplotlib.pyplot.bar(left, height, width=0.8, bottom=None, hold=None, **kwargs)里面重要的参数是左边起点,高度,宽度。下面例子:


[python] 

1. def drawPillar():     
2. 5;       
3. 20, 35, 30, 35, 27)    
4. 25, 32, 34, 20, 25)    
5.          
6.     fig, ax = plt.subplots()    
7.     index = np.arange(n_groups)    
8. 0.35    
9.          
10. 0.4    
11. 'b',label=    'Men')    
12. 'r',label='Women')    
13.          
14. 'Group')    
15. 'Scores')    
16. 'Scores by group and gender')    
17. 'A', 'B', 'C', 'D', 'E'))    
18. 0,40);    
19.     plt.legend();    
20.       
21.     plt.tight_layout();   
22.     plt.show();




得到的图像是:

Python当中画柱状图 python画柱状图颜色不同_Python当中画柱状图_03

再贴一图:

这是我关于pose识别率的实验结果,感觉结果真是令人不可思议!(非博主原文!)


[python] 

1. def drawBarChartPoseRatio():  
2. 5      
3. 0.84472049689441, 0.972477064220183, 1.0, 0.9655172413793104, 0.970970970970971)    
4. 1.0,              0.992992992992993, 1.0, 0.9992348890589136, 0.9717125382262997)  
5. 0.70853858784893, 0.569731081926204, 0.8902900378310215, 0.8638638638638638, 0.5803008248423096)  
6. 0.90786948176583, 0.796122576610381, 0.8475120385232745, 0.8873762376237624, 0.5803008248423096)    
7.       
8.     fig, ax = plt.subplots()    
9.     index = np.arange(n_groups)    
10. 0.3    
11. 0.4    
12.       
13. 2, alpha=opacity, color='r', label='VFH36'   )    
14. 2,  means_VFH50,  bar_width/2, alpha=opacity, color='g', label='VFH50'   )    
15.      
16. 2, alpha=opacity, color='c', label='VotexF36')    
17. 1.5*bar_width, means_VotexF50, bar_width/2, alpha=opacity, color='m', label='VotexF50')    
18.       
19. 'Category')    
20. 'Scores')    
21. 'Scores by group and Category')    
22.       
23. #plt.xticks(index - 0.2+ 2*bar_width, ('balde', 'bunny', 'dragon', 'happy', 'pillow'))  
24. 0.2+ 2*bar_width, ('balde', 'bunny', 'dragon', 'happy', 'pillow'),fontsize =18)  
25.   
26. 18)  #change the num axis size  
27.   
28. 0,1.5)  #The ceil  
29.     plt.legend()    
30.     plt.tight_layout()    
31.     plt.show()


柱状图显示:

Python当中画柱状图 python画柱状图颜色不同_python_04


4:散列图,由离散的点构成的。

函数是:

matplotlib.pyplot.scatter(x, y, s=20, c='b', marker='o', cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, hold=None,**kwargs),其中,xy是点的坐标,s点的大小,maker是形状可以maker=(5,1)5表示形状是5边型,1表示是星型(0表示多边形,2放射型,3圆形);alpha表示透明度;facecolor=‘none’表示不填充。例子如下:


[python] 

1. def drawStar():  
2. 8,4))    
3. 100)    
4. 100)    
5. 1000,c='y',marker=(5,1),alpha=0.5,lw=2,facecolors='none')    
6. 0,1)    
7. 0,1)    
8.          
9.     plt.show()




上面代码的facecolors参数使得前面的c=‘y’不起作用了。图像:

Python当中画柱状图 python画柱状图颜色不同_python_05


5,3D图像,主要是调用3D图像库。看下面的例子:


[python] 

1. def draw3Dgrid():  
2.       
3. 2:2:20j,-2:2:20j]    
4. 2-y**2)     
5. 111,projection='3d')    
6. 2,cstride=1,cmap=plt.cm.coolwarm,alpha=0.8)    
7. 'x')    
8. 'y')    
9. 'z')    
10.          
11.     plt.show()



得到的图像如下图所示:

Python当中画柱状图 python画柱状图颜色不同_ci_06


到此,matplotlib基本操作的学习结束了,相信大家也可以基本完成自己的科研任务了。下面将继续学习python的相关课程,请继续关注。

参考书目:

《python科学计算》

《matplotlib手册》



参考资料:http://matplotlib.org/gallery.html   matplotlib画廊

有少量修改,如有疑问,请访问原作者!