赞
踩
Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用,如 PyQt 和 wxPython。
Windows 系统安装 Matplotlib
进入到 cmd 窗口下,执行以下命令:
python -m pip install -U pip setuptools
python -m pip install matplotlib
Linux 系统安装 Matplotlib
可以使用 Linux 包管理器来安装:
Debian / Ubuntu:
sudo apt-get install python-matplotlib
Fedora / Redhat:
sudo yum install python-matplotlib
Mac OSX 系统安装 Matplotlib
Mac OSX 可以使用 pip 命令来安装:
sudo python -mpip install matplotlib
安装完后,你可以使用 python -m pip list 命令来查看是否安装了 matplotlib 模块。
$ python -m pip list | grep matplotlib
matplotlib (1.3.1)
实例
import numpy as np
from matplotlib import pyplot as plt
x=np.array([1,2,3,4,5])
y=2*x+5
plt.title('Matplotlib demo')
plt.xlabel('x')
plt.ylabel('y')
plt.plot(x,y) plt.show()
以上实例中,np.arange() 函数创建 x 轴上的值。y 轴上的对应值存储在另一个数组对象 y 中。 这些值使用 matplotlib 软件包的 pyplot 子模块的 plot() 函数绘制。
图形由 show() 函数显示。
Matplotlib 默认情况不支持中文,我们可以使用以下简单的方法来解决:
首先下载字体(注意系统):https://www.fontpalace.com/font-details/SimHei/
SimHei.ttf 文件放在当前执行的代码文件中:
import numpy as np
from matplotlib import pyplot as plt
import matplotlib
# fname 为 你下载的字体库路径,注意 SimHei.ttf 字体的路径
zhfont1 = matplotlib.font_manager.FontProperties(fname="E:\pythonwork\SimHei.ttf")
x=np.arange(1,11)
y=2*x+5
plt.title('图像',fontproperties=zhfont1)
plt.xlabel(x)
plt.ylabel(y)
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')
plt.ylabel('y')
plt.plot(x,y,'ob')
plt.show()
执行结果输出如下图所示:
以下实例使用 matplotlib 生成正弦波图。
import numpy as np
from matplotlib import pyplot as plt
x=np.arange(0,3*np.pi,0.1)
y=np.sin(x)
plt.title('sinx')
plt.xlabel('x')
plt.ylabel('y')
plt.plot(x,y)
plt.show()
执行结果输出如下图所示:
subplot() 函数允许你在同一图中绘制不同的东西。
以下实例绘制正弦和余弦值:
import numpy as np
import matplotlib.pyplot as plt
# 计算正弦和余弦曲线上的点的 x 和 y 坐标
x=np.arange(0,3*np.pi,0.1)
y_sin=np.sin(x)
y_cos=np.cos(x)
#建立subplot网格,高为2,宽为1
#激活第一个subplot网格
#绘制第一个图像
plt.subplot(2,1,1)
plt.title('sin(x)')
plt.xlabel('x')
plt.ylabel('y')
plt.plot(x,y_sin)
#激活第二个subplot网格
#绘制第二个图像
plt.subplot(2,1,2)
plt.title('cos(x)')
plt.xlabel('x')
plt.ylabel('y')
plt.plot(x,y_cos)
plt.show()
执行结果输出如下图所示:
pyplot 子模块提供 bar() 函数来生成条形图。
以下实例生成两组 x 和 y 数组的条形图。
import numpy as np
from matplotlib import pyplot as plt
x=[1,3,5]
y=[7,6,10]
x2=[2,4,6]
y2=[9,8,11]
plt.bar(x,y,align='center')
plt.bar(x2,y2,color='g',align='center')
plt.title='Bar Graph'
plt.xlabel('x')
plt.ylabel('y')
plt.plot(x,y)
plt.show()
执行结果输出如下图所示:
numpy.histogram() 函数是数据的频率分布的图形表示。 水平尺寸相等的矩形对应于类间隔,称为 bin,变量 height 对应于频率。
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])
hist,bins = np.histogram(a,bins = [0,20,40,60,80,100])
print (hist)
print (bins)
---------------执行以上程序,返回的结果为----------------
[3 4 5 2 1]
[ 0 20 40 60 80 100]
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()
执行结果输出如下图所示:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。