实现人脸识别性别之路---matplotlib之注释

一、准备数据

利用np.linspace()函数得到一定范围内的数据集

利用2*x+1的公式求出y

二、创建窗口

三、根据具有规律的数据画图

四、调整坐标轴

1、将原本的坐标轴的上轴和右轴去掉,使用基本句子为:ax.spines[].set_color()【思路:将他们的颜色改为白色】

2、改变x,y轴的名字:利用ax.xaxis.set_ticks_position()

3、移动我们设置的x,y轴:利用ax.spines[].set_position()函数

五、画图柄(出现的错误:plt.plot返回值没有逗号,plt.legend()中的labels没有用中括号括起来并且没有逗号)

六、注释

1、准备注释点并且讲这个点描成蓝色,并将这个点具体描绘出来

2、注释内容

3、注释点

4、注释的位置

5、注释文字的大小

6、箭头的形状和弧度

七、另一种注释方法

1、注释的位置

2、注释内容

3、设置注释内容的大小和颜色

实现代码:

 

import matplotlib.pyplot as plt
import numpy as np

#准备数据
x = np.linspace(-3,3)
y = 2*x+1

#创建窗口并添加内容
plt.figure(num="insist")
#画图
l1, = plt.plot(x,y)
# 读取当前坐标轴的信息
ax = plt.gca()
#将右轴改为无
ax.spines["right"].set_color("none")
#将上轴改为无
ax.spines['top'].set_color('none')
#设置y轴为left,将x轴改为bottom
ax.xaxis.set_ticks_position("bottom")
ax.yaxis.set_ticks_position("left")
#移动我们设置的x,y轴
ax.spines["bottom"].set_position(("data",0))
ax.spines["left"].set_position(("data",0))
#注释
x0 = 1
y0 = 2*x0+1
plt.scatter([x0, ], [y0, ], s=50, color='b')
plt.plot([x0,x0],[y0,0],'k--',lw=2.5)
plt.annotate(r"$2x0+1=%s$"%y0,xy=(x0,y0),xycoords='data',xytext=(-30,+30)
,textcoords="offset points",fontsize=16,arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.25"))

#另一种注释方法
plt.text(-3.7,2,r'$I think you can insist$',fontdict={"size":"16","color":'b'})

plt.legend(handles=[l1,],labels=["insist",],loc="best")

plt.show()

 

 

原文地址:https://www.cnblogs.com/MyUniverse/p/9652398.html