Python 使用matplotlib画图添加标注、及移动坐标轴位置

一、实现目标

Python 使用matplotlib画图添加标注、及移动坐标轴位置_第1张图片

代码实例


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()

你可能感兴趣的:(Python综合)