Python中plot绘图的基础应用
基础曲线
import matplotlib.pyplot as plt
x=[1,2,3,4]
y=[10,20,15,30]
plt.plot(x,y)
plt.show()
修改折线的颜色、形状
常用颜色的表示方法:
蓝色:b
绿色:g
红色:r
青色:c
品红:m
黄色:y
黑色:k
白色:w
常用点的表示方法:
点:.
像素:,
圆:o
方形:s
三角形:^
折线:-
常用线的表示方法:
直线:-
虚线:–
点线::
点划线:-.
import matplotlib.pyplot as plt
x=[1,2,3,4]
y=[10,20,15,30]
z=[5,10,15,20]
plt.plot(x,x,'r.-.') #红色点划线,点
plt.plot(x,y,'s-') #方形 直线
plt.plot(x,z,'g^:') #绿色点线,三角形
plt.show()
添加标题,X Y轴说明
import matplotlib.pyplot as plt
x=[1,2,3,4]
y=[10,20,15,30]
plt.plot(x,y)
plt.title('Title')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
添加图例
使用label,添加当前曲线的图例
import matplotlib.pyplot as plt
x=[1,2,3,4]
y=[10,20,15,30]
plt.title('Title')
plt.xlabel('x')
plt.ylabel('y')
z=[5,10,15,20]
plt.plot(x,y,label='Lable1')
plt.plot(x,z,label='Lable2')
plt.legend(loc=0)
plt.show()
改变图片大小
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 20, 0.01)
plt.figure(figsize=(4, 3))
plt.plot(x, np.sin(x), 'r-',label='sin(x)')
plt.plot(x, np.cos(x), 'b--',label='cos(x)')
plt.axis([0,20,-3,3])
plt.legend()
plt.show()
plt.figure(figsize=(8, 4))
plt.plot(x, np.sin(x), 'r-',label='sin(x)')
plt.plot(x, np.cos(x), 'b--',label='cos(x)')
plt.axis([0,20,-3,3])
plt.legend()
plt.show()
添加网格线
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 20, 0.01)
plt.figure(figsize=(6, 4))
plt.plot(x, np.sin(x), 'r-',label='sin(x)')
plt.plot(x, np.cos(x), 'b--',label='cos(x)')
plt.axis([0,20,-3,3])
plt.grid(True) # 设置网格线
plt.legend()
plt.show()
绘制散点图
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 20, 0.25)
plt.figure(figsize=(6, 4))
plt.scatter(x, np.sin(x),label='sin(x)',c='#00CED1',alpha=0.5)
plt.scatter(x, np.cos(x), label='cos(x)',alpha=0.5)
plt.axis([0,20,-3,3])
plt.grid(True) # 设置网格线
plt.legend()
plt.show()
添加中文
需要找到相应的ttf文件,添加到目录中,例如Anaconda中,目录为
C:\Program Files\Anaconda3\Lib\site-packages\matplotlib\mpl-data\fonts\ttf
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.font_manager import _rebuild #若仅加rcParams不能正常显示时,需要添加这一句
_rebuild()
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
x = np.arange(0, 20, 0.25)
plt.figure(figsize=(6, 4))
plt.scatter(x, np.sin(x),label='正弦sin(x)',c='#00CED1',alpha=0.5)
plt.scatter(x, np.cos(x), label='余弦cos(x)',alpha=0.5)
plt.axis([0,20,-3,3])
plt.grid(True) # 设置网格线
plt.title('这里是标题')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.legend()
plt.show()
绘制子图
使用subplot进行绘制,可以灵活组合实现不同的图
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.font_manager import _rebuild #若仅加rcParams不能正常显示时,需要添加这一句
_rebuild()
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
x = np.arange(0, 20, 0.25)
plt.figure(figsize=(6, 4))
plt.subplot(211) #构建2x1张图中的第1张子图
plt.axis([0,20,-3,3])
plt.scatter(x, np.cos(x),alpha=0.5)
plt.grid(True) # 设置网格线
plt.subplot(223) #构建2x2张图中的第3张子图
plt.axis([0,20,-3,3])
plt.scatter(x, np.sin(x),c='#00CED1',alpha=0.2)
plt.grid(True) # 设置网格线
plt.subplot(224) #构建2x2张图中的第4张子图
plt.axis([0,20,-3,3])
plt.plot(x, np.sin(x),'r-.')
plt.grid(True) # 设置网格线
#plt.legend()
plt.show()