本篇将介绍Matplotlib中plt常见的二维图形绘制命令。
先简单绘制一个二维图形:
当前图表和子图可以使用plt.gcf()与plt.gca()获得。例如plt.plot()实际上会通过plt.gca()获得当前的Axes对象ax,然后再调用ax.plot()方法实现真正的绘图。
plt.plot(x,y)
ax = plt.gca()
ax.spines['right'].set_color('red') #set_color()可以更改边框颜色 spine是复数
ax.spines['left'].set_color('blue')
ax.spines['top'].set_color('none') #想让哪条线消失,就可以把哪条线的颜色设置为None
#更改x与y轴,就先把x与y轴设置成none,然后重新选择两条线当做x与y轴。
x = np.linspace(-3.15,3.15,100)
y = np.sin(x)
plt.plot(x,y)
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
创建Figure对象
Figure对象是后续绘图操作的总容器。
figure(num=l None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
把图存到文件里。
# plt.bar()与plt.barh()
x = np.arange(10) 生成10个1到10之间的整数
data = np.random.randint(1,11,10)
data
plt.bar(x,data) #绘制条形图
plt.show()
# 水平条形图
plt.barh(x,data,label='bar')
plt.legend(loc=1)
plt.title('horizontal bar chart')
plt.show()
plt.bar(x,data,facecolor='r',edgecolor='y',lw='5',alpha=0.7) #给图形更改颜色、边框颜色、粗细、透明度
饼图绘制
x = [0.1,0.5,0.03,0.1,0.05] #这几个数字加起来要比1要小,大于一的话会直接画一个正圆,各项按百分比来看
plt.pie(x)
x = [1,5,2]
plt.pie(x,labels=["egg","hiit","song"],explode=[1.5,0,0])
#lables—命名,数字有几个,lables就要有几个,一一对应
#explode—突出图形,让图形移位,0的话图形就仍然留在原地
x = [1,5,2]
plt.pie(x,labels=["egg","hiit","song"],shadow=True,autopct="%1.1f%%") #把数字加到图里,用的是百分号的格式方法。在f后加两个‘%’才能完成转义,显示出来
x = [1,5,2]
plt.pie(x,labels=["egg","hiit","song"])
plt.pie([1],colors="w",radius=0.7) #在大饼图的里面再画一个小的,颜色设为白色,因为默认都是从圆心开始画的,所以可以叠加
plt.axis("equal") #让饼图显示为正圆
data = [np.random.normal(0,std,100) for std in range(1,4)] #列表推导式,求随机数的
plt.boxplot(data) #每次画的图像都不一样,因为是随机数
plt.boxplot(data,notch=True,sym="*",vert=False) #vert—改变图形方向
data = [np.random.normal(0,std,100) for std in range(1,4)] #列表推导式,求随机数的
plt.boxplot(data,notch=True,sym="*",vert=False,patch_artist=True) #想要箱体有颜色,patch_artist要设置为True