作者是跟着http://t.csdnimg.cn/4fVW0学习的,matplotlib系列文章是http://t.csdnimg.cn/4fVW0的自己学习过程中整理的详细说明版本,对小白更友好哦!
一、Matplotlib图像基础
1.1 基本绘图实例:sin、cos函数图
代码详解:
1. from pylab import *:导入pylab库中所有函数和变量。pylab是一个python库,它集成了matplotlib和numpy库,提供了一个更简洁的接口来绘制图形。
2. import numpy as np:导入numpy库。
3. import matplotlib.pyplot as plt:导入了matplot库的pyplot模块,pylot是一个绘图接口,提供了方便的绘制函数和命令。
4. x = np.linspace(-np.pi, np.pi, 256, endpoint=True):使用numpy的
linspace
函数创建了一个从-π到π的等间距数组,共有256个元素。endpoint=True
表示包含π。5. c, s = np.cos(x), np.sin(x):使用numpy创建cos(x),sin(x)函数。
6. plt.plot(x, c):使用pyplot的
plot
函数绘制了余弦函数的图形。
from pylab import *
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
c, s = np.cos(x), np.sin(x)
plt.plot(x, c)
plt.plot(x, s)
show()
1.2 plot()函数详解
plot()函数是matplotlib中用于绘制线图的主要函数。
plot()函数的参数包括(按照参数书写顺序):
1. x:x轴上的点。
2. y:y轴上的点。
3. color:定义线的颜色,'blue', 'green', 'red'等。
4. linewidth:定义线的宽度。
5. linestyle:定义线的样式,'-'表示实线,':'表示虚线,'--'表示双虚线。
6. marker:定义数据点的标记形状,'o'表示圆点,'s'表示正方形等。
7. markercolor:定义标记的颜色。
8. markersize:定义标记的大小。
9. alpha:定义线的透明度,值在0~1之间。
10. label:用于图例的标签。
11. 其他参数:如title,xlabel,ylabel等。
matplotlib颜色对照表:http://t.csdnimg.cn/4a8PA
from pylab import *
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
c, s = np.cos(x), np.sin(x)
plt.plot(x, c, 'b|-')
plt.plot(x, s)
show()
1.3 matplotlib中绘图的默认配置
代码详解:
figure(figsize=(8, 6), dpi=80)
: 这行代码创建了一个新的图形窗口,并设置了窗口的大小和分辨率。figsize
参数指定了窗口的宽度和高度,dpi
参数指定了分辨率。
subplot(1, 1, 1)
: 这行代码在当前图形窗口中创建了一个新的子图。subplot
函数可以创建一个子图网格,这里我们创建了一个1行1列的网格,所以只有一个子图。
xticks(np.linspace(-4, 4, 9, endpoint=True), fontproperties='Times New Roman', size=20)
: 这行代码设置了x轴的刻度标记,并指定了刻度标记的字体和大小。
yticks(np.linspace(-1, 1, 5, endpoint=True))
:np.linspace(-1, 1, 5, endpoint=True)
是一个numpy函数,它创建了一个等间距的数组,从-1开始,到1结束,包含5个元素。由于endpoint=True
,-1和1本身也会作为刻度标记,所以总共有5个刻度标记(-1, -0.5, 0, 0.5, 1)。
from pylab import *
import numpy as np
import matplotlib.pylab as plt
# 创建一个8*6点(point)的图,并设置分辨率为80
figure(figsize=(8, 6), dpi=80)
# 创建一个新的1*1的子图,接下来的图样绘制在其中的第一块中
subplot(1, 1, 1)
# 得到坐标点(x,y)坐标
X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
C, S = np.cos(X), np.sin(X)
# 绘制余弦曲线,使用蓝色的、连续的、宽度为2.5的线条
plot(X, C, color='blue', linewidth=2.5, linestyle='-')
# 绘制正弦曲线,使用绿色的、连续的、宽度为2.0的线条
plot(X, S, color='green', linewidth=2.0, linestyle='-')
# 设置横轴的上下限
xlim(-4.0, 4.0)
# 设置横轴记号
xticks(np.linspace(-4, 4, 9, endpoint=True), fontproperties='Times New Roman', size=20)
# 设置纵轴记号
yticks(np.linspace(-1, 1, 5, endpoint=True))
#设置横纵坐标的名称以及对应字体格式
font = {'family' : 'Times New Roman',
'weight' : 'normal',
'size' : 20,
}
# 设置横轴标签
plt.xlabel('X axis', font)
# 设置纵轴标签
plt.ylabel('Y axis', font)
# 设置图像标题
plt.title('Demo Figure', font)
# 以分辨率72来保存图片
savefig('demo.png', dpi=72)
# 在屏幕上显示
show()
1.4 设置图的横纵坐标的上下界
代码详解:
x_min, x_max = X.min(), X.max()
: 这行代码计算了x轴上的最小值和最大值,并将它们存储在变量x_min
和x_max
中。
c_min, c_max = C.min(), C.max()
: 这行代码计算了余弦函数上的最小值和最大值,并将它们存储在变量c_min
和c_max
中。
s_min, s_max = S.min(), C.max()
: 这行代码计算了正弦函数上的最小值和最大值,并将它们存储在变量s_min
和s_max
中。
y_min, y_max = min(c_min, s_min), max(c_max, s_max)
: 这行代码计算了y轴上的最小值和最大值,这些值是余弦和正弦函数的最小值和最大值中的较小者和较大者。
dx = (x_max - x_min) * 0.2
: 这行代码计算了x轴上下界偏移量的一半,这将用于调整x轴的范围,以便更美观地显示图像。
dy = (y_max - y_min) * 0.2
: 在matplotlib中,xlim
和ylim
函数用于设置坐标轴的上下限。默认情况下,这些函数会直接使用数据的最小值和最大值作为坐标轴的上下限,但是有时候,为了使图形看起来更加美观或者为了更好地展示数据,你可能需要稍微调整这些值。例如,如果你有一个数据集,它的x轴范围是[1, 10],y轴范围是[0, 100],那么x_max - x_min
将是9,y_max - y_min
将是99。如果你设置dx
和dy
为(x_max - x_min) * 0.2
和(y_max - y_min) * 0.2
,那么x轴的上下限将变为[1 - 0.2, 10 + 0.2],即[0.8, 10.2],y轴的上下限将变为[0 - 0.2, 100 + 0.2],即[-0.2, 100.2]。
from pylab import *
import numpy as np
# 得到坐标点(x,y)坐标
X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
C, S = np.cos(X), np.sin(X)
x_min, x_max = X.min(), X.max()
c_min, c_max = C.min(), C.max()
s_min, s_max = S.min(), C.max()
y_min, y_max = min(c_min, s_min), max(c_max, s_max)
# 设置横纵坐标上下界的偏移量,这样能够完整的显示图像且最美观
dx = (x_max - x_min) * 0.2
dy = (y_max - y_min) * 0.2
# 设置上下限
xlim(x_min - dx, x_max + dx)
ylim(y_min - dy, y_max + dy)
# 绘制余弦曲线,使用蓝色的、连续的、宽度为1的线条
plot(X, C, color='blue', linewidth=2.5, linestyle='-')
# 绘制正弦曲线,使用绿色的、连续的、宽度为1的线条
plot(X, S, color='green', linewidth=2.0, linestyle='-')
show()
内容太多,下一篇继续!