一、实现目标
代码实例
import
matplotlib.pyplot as plt
import
matplotlib
import
numpy as np
#解决中文乱码问题,引入windows字体库
myfont
= matplotlib.font_manager.FontProperties(fname=r
'C:/Windows/Fonts/msyh.ttf'
)
x
= np.linspace(-
3
,
3
,
50
)
y
=
2
*x
+
1
plt.plot(x,y)
plt.figure(
1
,figsize=(
8
,
5
))
xticks
= np.linspace(-
3
,
3
,
11
)
#plt.xticks(xticks)
设置坐标点
#yticks
= np.linspace(-
6
,
8
,
14
)
#plt.yticks(yticks)
plt.xlabel(
"x"
)
plt.ylabel(
"y"
)
#挪动坐标位置
ax
= plt.gca()
#去掉边框
ax.spines[
'top'
].set_color(
'none'
)
ax.spines[
'right'
].set_color(
'none'
)
#移位置
设为原点相交
ax.xaxis.set_ticks_position(
'bottom'
)
ax.spines[
'bottom'
].set_position((
'data'
,
0
))
ax.yaxis.set_ticks_position(
'left'
)
ax.spines[
'left'
].set_position((
'data'
,
0
))
''
'
然后标注出点(x0,
y0)的位置信息. 用plt.plot([x0, x0,], [
0
,
y0,],
'k--'
,
linewidth=
1.0
)
画出一条垂直于x轴的虚线
''
'
x0
=
1
y0
=
2
*x0
+
1
plt.plot([x0,x0,],[
0
,y0],
'k--'
,linewidth=
2.5
)
#
set dot styles
plt.scatter([x0,
], [y0, ], s=
50
,
color=
'r'
)
#在这点加个蓝色的原点 原点大小
50
plt.title(u
'Annotation
标注'
,fontproperties=myfont)
#标注方式
1
:
使用 annotate 接下来我们就对(x0, y0)这个点进行标注.
''
'
其中参数xycoords=
'data'
是说基于数据的值来选位置, xytext=(+
30
,
-
30
)
和
textcoords=
'offset
points'
对于标注位置的描述 和 xy 偏差值, arrowprops是对图中箭头类型的一些设置.
''
'
plt.annotate(r
'$2x+1=%s$'
% y0, xy=(x0, y0), xycoords=
'data'
,
xytext=(+
30
,
-
30
),
textcoords=
'offset
points'
,
fontsize=
16
,
arrowprops=dict(arrowstyle=
'->'
,
connectionstyle=
"arc3,rad=.2"
))
''
'
标注方式
2
:
使用 text
其中-
3.7
,
3
,是选取text的位置,
空格需要用到转字符\ ,fontdict设置文本字体.
''
'
plt.text(-
3.7
,
3
,
r
'$.Annotation
text 、 \mu\ \sigma_i\ \alpha_t$'
,
fontdict={
'size'
:
16
,
'color'
:
'r'
})
plt.show()