第一遍学习添加注释的时候,感觉参数好多,云里雾里。第二遍复习的时候重新梳理了一下,感觉程序设计时逻辑还是很清晰的。
一:添加散点
代码<code>
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3, 3)
y1 = 2 * x + 1
y2 = x ** 2
plt.figure(num='915')
l1, = plt.plot(x, y1, color='r', linewidth=2.0)
l2, = plt.plot(x, y2, color='y', linewidth=2.0)
# 设置坐标轴
axis = plt.gca()
axis.spines['right'].set_color('none')
axis.spines['top'].set_color('none')
axis.spines['left'].set_position(('data', 0))
axis.spines['bottom'].set_position(('data', 0))
# 设置图例
plt.legend(handles=(l1, l2), labels=('y=2*x+1', 'y=x**2'), loc='lower right')
# 标出散点
x1 = 1
x2 = 1.5
y1 = 2 * x1 + 1
y2 = x2 ** 2
plt.scatter([x1, x2], [y1, y2], s=50, color='k')
plt.show()
输出:
这里主要使用了scatter(x,y,s)函数,必填参数是x值y值和size大小值。没什么特别的,多练习多积累就好。
二:添加注释——annotate()注释函数
代码<code>
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3, 3)
y1 = 2 * x + 1
y2 = x ** 2
plt.figure(num='915')
l1, = plt.plot(x, y1, color='r', linewidth=2.0)
l2, = plt.plot(x, y2, color='y', linewidth=2.0)
# 设置坐标轴
axis = plt.gca()
axis.spines['right'].set_color('none')
axis.spines['top'].set_color('none')
axis.spines['left'].set_position(('data', 0))
axis.spines['bottom'].set_position(('data', 0))
# 设置图例
plt.legend(handles=(l1, l2), labels=('y=2*x+1', 'y=x**2'), loc='lower right')
# 标出散点
x1 = 1
x2 = 1.5
y1 = 2 * x1 + 1
y2 = x2 ** 2
plt.scatter([x1, x2], [y1, y2], s=50, color='k')
# 画出虚线
plt.plot([x1, x1], [y1, 0], linestyle='--', linewidth='2.0', color='k')
plt.plot([x2, x2], [y2, 0], linestyle='--', linewidth='2.0', color='k')
# 加注释
plt.annotate(r'2*x1+1=%s' % y1, xy=(x1, y1), xycoords='data', xytext=(-30, +30), textcoords='offset points',
fontsize=12, arrowprops=dict(arrowstyle='->', connectionstyle='arc3,rad=.2'))
plt.annotate(r'x**2=%s' % y2, xy=(x2, y2), xycoords='data', xytext=(+30, -30), textcoords='offset points',
fontsize=12, arrowprops=dict(arrowstyle='->', connectionstyle='arc3,rad=.2'))
plt.show()
输出:
annotate(text,xy)函数,必填参数是文本内容和xy坐标值,如果只填写这俩的话,注释内容就默认放在散点附近。后续的参数是增加了更多的注释样式:位置调整——>1.xycoords='data',表示xy的坐标系就是‘data’这个坐标系;2.xytext=(-30,+30),表示文本内容左移30个单位,再上移30个单位,而且我还试验过,必须是xytext不能只写text,针对性指xy点;3.textcoords=‘offset points’,表示文本坐标系是‘偏移点’,即左移上移之后的位置;4.fontsize=12,表示字体大小为12号;5.arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2'),这个是一个箭头道具,参数放映了箭头的样式,箭头的弯曲角度(这里arc3不能动,rad.2是可以调整的,我还不是很理解,等我搞明白了我再总结)。
三:添加注释——text()
代码<code>
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3, 3)
y1 = 2 * x + 1
y2 = x ** 2
plt.figure(num='915')
l1, = plt.plot(x, y1, color='r', linewidth=2.0)
l2, = plt.plot(x, y2, color='y', linewidth=2.0)
# 设置坐标轴
axis = plt.gca()
axis.spines['right'].set_color('none')
axis.spines['top'].set_color('none')
axis.spines['left'].set_position(('data', 0))
axis.spines['bottom'].set_position(('data', 0))
# 设置图例
plt.legend(handles=(l1, l2), labels=('y=2*x+1', 'y=x**2'), loc='lower right')
# 标出散点
x1 = 1
x2 = 1.5
y1 = 2 * x1 + 1
y2 = x2 ** 2
plt.scatter([x1, x2], [y1, y2], s=50, color='k')
# 画出虚线
plt.plot([x1, x1], [y1, 0], linestyle='--', linewidth='2.0', color='k')
plt.plot([x2, x2], [y2, 0], linestyle='--', linewidth='2.0', color='k')
# 方法2加注释
plt.text(-3, 3, r'start at point(-3,3)')
plt.show()
输出:
这里需要注意text(x,y,text)函数中xy不是我们的散点,而是指文本起始书写位置。就这个点需要注意,其他的就还好了 。
今日小结就到这里,瑞思拜!!!