NumPy - Matplotlib绘图库

NumPy - Matplotlib

Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用,如 PyQt 和 wxPython。

Matplotlib 模块最初是由 John D. Hunter 编写的。 自 2012 年以来,Michael Droettboom 是主要开发者。 目前,Matplotlib 1.5.1 是可用的稳定版本。 该软件包可以二进制分发,其源代码形式在 www.matplotlib.org 上提供。

通常,通过添加以下语句将包导入到 Python 脚本中:

from matplotlib import pyplot as plt

这里pyplot()是 matplotlib 库中最重要的函数,用于绘制 2D 数据。 以下脚本绘制方程y = 2x + 5

示例

import numpy as np 
from matplotlib import pyplot as plt 
x = np.arange(1,11) 
y =  2  * x +  5 
plt.title("Matplotlib demo") 
plt.xlabel("x axis caption") 
plt.ylabel("y axis caption") 
plt.plot(x,y)
plt.show()

结果如下图

作为线性图的替代,可以通过向plot()函数添加格式字符串来显示离散值。 可以使用以下格式化字符。

字符描述
'-'实线样式
'--'短横线样式
'-.'点划线样式
':'虚线样式
'.'点标记
','像素标记
'o'圆标记
'v'倒三角标记
'^'正三角标记
'<'左三角标记
'>'右三角标记
'1'下箭头标记
'2'上箭头标记
'3'左箭头标记
'4'右箭头标记
's'正方形标记
'p'五边形标记
'*'星形标记
'h'六边形标记 1
'H'六边形标记 2
'+'加号标记
'x'X 标记
'D'菱形标记
'd'窄菱形标记
'|'竖直线标记
'_'水平线标记

还定义了以下颜色缩写。

字符颜色
'b'蓝色
'g'绿色
'r'红色
'c'青色
'm'品红色
'y'黄色
'k'黑色
'w'白色

要显示圆来代表点,而不是上面示例中的线,请使用ob作为plot()函数中的格式字符串。

示例



import numpy as np 
from matplotlib import pyplot as plt 
x = np.arange(1,11) 
y =  2  * x +  5 
plt.title("Matplotlib demo") 
plt.xlabel("x axis caption") 
plt.ylabel("y axis caption") 
plt.plot(x,y,"ob") 
plt.show()

结果如下图


绘制正弦波

以下脚本使用 matplotlib 生成正弦波图

示例

x = np.arange(0,3*np.pi,0.1)
y = np.sin(x)

plt.title('sine wave form')
plt.plot(x,y)
plt.show()

结果如下图


subplot()

subplot()函数允许你在同一图中绘制不同的东西。 在下面的脚本中,绘制正弦余弦值。

示例

import numpy as np 
import matplotlib.pyplot as plt 
x = np.arange(0,3*np.pi,0.1)
sin_y = np.sin(x)
cos_y = np.cos(x)
#绘制第一张图
a1 = plt.subplot(2,2,1)
#第二张图
a2 = plt.subplot(2,2,2)
a1.plot(x,sin_y)
a2.plot(x,cos_y)
plt.show()

#结果如下

bar()

pyplot子模块提供bar()函数来生成条形图。 以下示例生成两组xy数组的条形图。

#列

import matplotlib.pyplot as plt 
import numpy as np
x =  np.array([5,8,10])
y =  np.array([12,16,6])
x2 =  np.array([6,9,11]) 
y2 =  np.array([6,15,7])
plt.bar(x, y, align =  'center') 
plt.bar(x2, y2, color =  'g', align =  'center') 
plt.title('Bar graph') 
plt.ylabel('Y axis') 
plt.xlabel('X axis') 
plt.show()

#结果如下

NumPy - 使用 Matplotlib 绘制直方图

NumPy 有一个numpy.histogram()函数,它是数据的频率分布的图形表示。 水平尺寸相等的矩形对应于类间隔,称为bin,变量height对应于频率。

numpy.histogram()

numpy.histogram()函数将输入数组和bin作为两个参数。 bin数组中的连续元素用作每个bin的边界。


import numpy as np 

a = np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27]) 
np.histogram(a,bins =  [0,20,40,60,80,100]) 
#结果
(array([3, 4, 5, 2, 1]), array([  0,  20,  40,  60,  80, 100]))

plt()

Matplotlib 可以将直方图的数字表示转换为图形。 pyplot子模块的plt()函数将包含数据和bin数组的数组作为参数,并转换为直方图。

from matplotlib import pyplot as plt 
import numpy as np  

a = np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27]) 
plt.hist(a, bins =  [0,20,40,60,80,100]) 
plt.title("histogram") 
plt.show()

#结果如下



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值