代码实例
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()