在使用Python绘制图表前,我们需要先安装两个库文件numpy和matplotlib。
Numpy是Python开源的数值计算扩展,可用来存储和处理大型矩阵,比Python自身数据结构要高效;matplotlib是一个Python的图像框架,使用其绘制出来的图形效果和MATLAB下绘制的图形类似。
下面我通过一些简单的代码介绍如何使用 Python绘图。
一、图形绘制
直方图
1
2
3
4
5
6
7
8
9
10
11
12
13
|
importmatplotlib.pyplotasplt importnumpyasnp mu = 100 sigma = 20 x = mu + sigma * np.random.randn( 20000 ) # 样本数量 plt.hist(x,bins = 100 ,color = 'green' ,normed = True ) # bins显示有几个直方,normed是否对数据进行标准化 plt.show() |
条形图
1
2
3
4
5
6
7
8
9
10
11
|
importmatplotlib.pyplotasplt importnumpyasnp y = [ 20 , 10 , 30 , 25 , 15 ] index = np.arange( 5 ) plt.bar(left = index,height = y,color = 'green' ,width = 0.5 ) plt.show() |
折线图
1
2
3
4
5
6
7
8
9
10
11
|
importmatplotlib.pyplotasplt importnumpyasnp x = np.linspace( - 10 , 10 , 100 ) y = x * * 3 plt.plot(x,y,linestyle = '--' ,color = 'green' ,marker = '<' ) plt.show() |
散点图
1
2
3
4
5
6
7
8
9
10
11
|
importmatplotlib.pyplotasplt importnumpyasnp x = np.random.randn( 1000 ) y = x + np.random.randn( 1000 ) * 0.5 plt.scatter(x,y,s = 5 ,marker = '<' ) # s表示面积,marker表示图形 plt.show() |
饼状图
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
importmatplotlib.pyplotasplt importnumpyasnp labels = 'A' , 'B' , 'C' , 'D' fracs = [ 15 , 30 , 45 , 10 ] plt.axes(aspect = 1 ) #使x y轴比例相同 explode = [ 0 , 0.05 , 0 , 0 ] # 突出某一部分区域 plt.pie(x = fracs,labels = labels,autopct = '%.0f%%' ,explode = explode) #autopct显示百分比 plt.show() |
箱形图
主要用于显示数据的分散情况。图形分为上边缘、上四分位数、中位数、下四分位数、下边缘。外面的点时异常值
1
2
3
4
5
6
7
8
9
10
11
12
13
|
importmatplotlib.pyplotasplt importnumpyasnp np.random.seed( 100 ) data = np.random.normal(size = ( 1000 , 4 ),loc = 0 ,scale = 1 ) labels = [ 'A' , 'B' , 'C' , 'D' ] plt.boxplot(data,labels = labels) plt.show() |
二、图像的调整
1、23种点形状
1
2
3
4
5
6
7
8
9
|
"." point "," pixel "o" circle "v" triangle_down "^" triangle_up "<" triangle_left ">" triangle_right "1" tri_down "2" tri_up "3" tri_left "4" tri_right "8" octagon "s" square "p" pentagon "*" star "h" hexagon1 "H" hexagon2 "+" plus "x" x "D" diamond "d" thin_diamond |
2、8种內建默认颜色的缩写
1
2
3
|
b:blueg:greenr:redc:cyan m:magentay:yellowk:blackw:white |
3、4种线性
- 实线 --虚线 -.点划线 :点线
4、一张图上绘制子图
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
importmatplotlib.pyplotasplt importnumpyasnp x = np.arange( 1 , 100 ) plt.subplot( 221 ) #2行2列第1个图 plt.plot(x,x) plt.subplot( 222 ) plt.plot(x, - x) plt.subplot( 223 ) plt.plot(x,x * x) plt.subplot( 224 ) plt.plot(x,np.log(x)) plt.show() |
5、生成网格
1
2
3
4
5
6
7
8
9
10
11
|
importmatplotlib.pyplotasplt importnumpyasnp y = np.arange( 1 , 5 ) plt.plot(y,y * 2 ) plt.grid( True ,color = 'g' ,linestyle = '--' ,linewidth = '1' ) plt.show() |
6、生成图例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
importmatplotlib.pyplotasplt importnumpyasnp x = np.arange( 1 , 11 , 1 ) plt.plot(x,x * 2 ) plt.plot(x,x * 3 ) plt.plot(x,x * 4 ) plt.legend([ 'Normal' , 'Fast' , 'Faster' ]) plt.show() |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://www.jianshu.com/p/1b6a0d4fecec