在使用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