import matplotlib.pyplot as plt import numpy as np x = np.linspace(-3, 3, 50) y = 2*x + 1 plt.figure(num=1, figsize=(8, 5),) plt.plot(x, y,) ax = plt.gca() ax.spines['right'].set_color('none')#右边框为空 ax.spines['top'].set_color('none')#上边框为空 ax.xaxis.set_ticks_position('bottom')#设置下边为x轴 ax.spines['bottom'].set_position(('data', 0))#设置下边即x轴的起始点 ax.yaxis.set_ticks_position('left') ax.spines['left'].set_position(('data', 0)) 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='b') 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")) #其中参数xycoords='data' 是说基于数据的值来选位置, xytext=(+30, -30) 和 textcoords='offset points' 对于标注位置的描述 和 xy 偏差值, arrowprops是对图中箭头类型的一些设置. plt.text(-3.7, 3, r'$This is the some text. mu sigma_i alpha_t$', fontdict={'size': 16, 'color': 'r'}) plt.show()