Matplotlib基本使用
程序员文章站
2022-07-14 10:34:27
...
import numpy as np
from matplotlib import pyplot as plt
%matplotlib inline
x = np.linspace(0, -2*np.pi, 100)
y = np.sin(x)
z = np.cos(np.power(x, 2))
plt.figure(1)
plt.plot(x, y, label='$sin(x)$', color='r', linewidth=2)
plt.xlabel('Time(s)')
plt.ylabel('Volt')
plt.title('First Example')
plt.ylim(-1.2, 1.2)
plt.legend()
plt.show()
说明:
(1) label:给所绘制的曲线一个名词, 此名称在图示(legend)中显式, 只要在字符串前后添加'$' 符号, Matplotlib就会使用其内嵌的latex 引擎绘制的数学公式。
(2) color: 指定曲线的颜色
(3) linewidth: 指定曲线的宽度
(4) xlabel: 设置X轴的文字
(5) ylabel: 设置Y轴的文字
(6) title: 设置图表的标题
(7) ylim: 设置Y轴的范围, 格式为[y的起点, y的终点]
(8) xlim: 设置X轴的范围, 格式为[x的起点, x的终点]
(9) axis: 可以替代设置XY轴的范围, 格式为[x的起点, x的终点, y的起点, y的终点]
(10) legend: 显式label中标记的图示
Matplotlib中还可以设置线型标记等(如下面表格所示):
颜色 | 标记 | 颜色 | 标记 |
---|---|---|---|
蓝色 | b | 绿色 | g |
红色 | r | 黄色 | y |
青色 | c | 黑色 | k |
洋红色 | m | 白色 |
|
参数 | 描述 | 参数 | 描述 |
---|---|---|---|
'-' | 实线 | '-'或':' | 虚线 |
'-.' | 点画线 | 'none'或'' | 什么都不画 |
取值 | 描述 | 取值 | 描述 |
---|---|---|---|
'O' | 圆圈 | '.' | 点 |
'D' | 菱形 | 'S' | 正方形 |
'h' | 六边形1 | '*' | 星号 |
'H' | 六边形2 | 'd' | 小菱形 |
'p' | 五边形 | '+' | 加号 |
Mtaplotlib还可以在图中写出文本注释,被注释的地方, 使用坐标xy = (x, y)给出插入文本的地方, 使用坐标xytest = (x, y)给出注释地方
例:
import numpy as np
from matplotlib import pyplot as plt
%matplotlib inline
x = np.arange(0.0, 5.0, 0.01)
y = np.cos(2 * np.pi * x)
plt.plot(x, y)
plt.annotate('local max', xy=(2, 1), xytext=(3, 1.5), arrowprops = dict(facecolor='y', shrink=0.05),)
plt.ylim(-2, 2)
plt.show()
如果换成中文:
x = np.linspace(0, -2*np.pi, 100)
y = np.sin(x)
plt.plot(x, y, label='$sin(x)$', color='red', linewidth=2)
plt.xlabel('时间(秒)')
plt.ylabel('电压')
plt.title('正弦波')
plt.axis([-8, 0, -1.2, 1.2])
plt.legend()
plt.show()
需要手动添加显式中文字体的代码:
from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False