使用Python绘制图表

浏览: 2274

在使用Python绘制图表前,我们需要先安装两个库文件numpy和matplotlib。

Numpy是Python开源的数值计算扩展,可用来存储和处理大型矩阵,比Python自身数据结构要高效;matplotlib是一个Python的图像框架,使用其绘制出来的图形效果和MATLAB下绘制的图形类似。

下面我通过一些简单的代码介绍如何使用 Python绘图。

一、图形绘制

image.png

直方图

import matplotlib.pyplot as plt
import numpy as np
mu = 100
sigma = 20
x = mu + sigma * np.random.randn(20000) # 样本数量
plt.hist(x,bins=100,color='green',normed=True) # bins显示有几个直方,normed是否对数据进行标准化
plt.show()

条形图

import matplotlib.pyplot as plt
import numpy as np
y = [20,10,30,25,15]
index = np.arange(5)
plt.bar(left=index, height=y, color='green', width=0.5)
plt.show()

折线图

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-10,10,100)
y = x**3
plt.plot(x,y,linestyle='--',color='green',marker='<')
plt.show()

散点图

import matplotlib.pyplot as plt
import numpy as np
x = np.random.randn(1000)
y = x+np.random.randn(1000)*0.5
plt.scatter(x,y,s=5,marker='<') # s表示面积,marker表示图形
plt.show()

饼状图

import matplotlib.pyplot as plt
import numpy as np
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()

箱形图

主要用于显示数据的分散情况。图形分为上边缘、上四分位数、中位数、下四分位数、下边缘。外面的点时异常值

import matplotlib.pyplot as plt
import numpy as np
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种点形状

"."  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种內建默认颜色的缩写

b:blue         g:green       r:red       c:cyan
m:magenta y:yellow k:black w:white

3、4种线性

- 实线     --虚线      -.点划线   :点线

4、一张图上绘制子图

image.png

import matplotlib.pyplot as plt
import numpy as np
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、生成网格

image.png

import matplotlib.pyplot as plt
import numpy as np
y=np.arange(1,5)
plt.plot(y,y*2)
plt.grid(True,color='g',linestyle='--',linewidth='1')
plt.show()

6、生成图例

image.png

import matplotlib.pyplot as plt
import numpy as np
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()
推荐 4
本文由 watermelon 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

1 个评论

学习ing

要回复文章请先登录注册