本节讲述在图片中添加注解。
直接上代码:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 生成x轴上的数据:从-3到3,总共有50个点
x = np.linspace(-1, 1, 50)
# 定义一个线性方程
y1 = 2 * x + 1
# 定义一个二次方程
y2 = x ** 2
# 绘制红色的线宽为1虚线的线条,注意这里p1后面有个逗号
plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--', label="y1")
plt.plot(x, y2, label="y2")
ax = plt.gca()
# 隐藏掉右边和上面的轴
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
# 把下面的轴当做x轴
ax.xaxis.set_ticks_position('bottom')
# 把左面的轴当做y轴
ax.yaxis.set_ticks_position('left')
# 设置原点为(0, 0)点
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))
# 在直线上添加标注点
x0 = 1
# 直线方程
y0 = 2 * x0 + 1
# 在图形上设置(x0, y0)的点,s(size)设置为50, c(color)=blue
plt.scatter(x0, y0, s=50, c='b')
# 画一条(x0, y0)到(x0, 0)的直线, linestyle(线条样式)为虚线,颜色为黑色,线宽为2.5宽度
plt.plot([x0, x0], [y0, 0], linestyle='--', color='black', linewidth=2.5)
# 标注1
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
plt.text(-0.75, 2, r'$This is the some text. mu sigma_i alpha_t$', fontdict={'size':16, 'color':'red'})
# 显示图表
plt.show()
显示的图为: