本期课程讲的是给坐标轴上的ticks(都不知道咋翻译了)做设置,内容不多。
代码<code>
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3, 3, 50)
y1 = x ** 2 - 2
y2 = 2 * x + 1
plt.figure(num='916')
l1, = plt.plot(x, y1, linewidth=3.0, color='b')
l2, = plt.plot(x, y2, linewidth=2.5, color='y')
# 设置坐标轴,隐藏不必要的轴
axis = plt.gca()
axis.spines['top'].set_color('none')
axis.spines['right'].set_color('none')
# 调轴的位置
axis.yaxis.set_ticks_position('left')
axis.spines['left'].set_position(('data', 0))
axis.xaxis.set_ticks_position('bottom')
axis.spines['bottom'].set_position(('data', 0))
# 设置图例
plt.legend(handles=[l1, l2], labels=['y1=x**2-2', 'y2=2*x+1'], loc='lower right')
x0 = 1
y1_0 = x0 ** 2 - 2
y2_0 = 2 * x0 + 1
# 添加散点
plt.scatter(x0, y1_0, s=50)
plt.scatter(x0, y2_0, s=50)
# 添加虚线
plt.plot([x0, x0], [y1_0, 0], linestyle='--', color='b', linewidth=2.0)
plt.plot([x0, x0], [y2_0, 0], linestyle='--', color='y', linewidth=2.0)
# 添加注释
plt.annotate(r'(x=%s,y=%s)' % (x0, y1_0), xy=(x0, y1_0), xycoords='data', xytext=(+30, -30), textcoords='offset points',
fontsize=12, arrowprops=dict(arrowstyle='->', connectionstyle='arc3,rad=.2'))
plt.annotate(r'(x=%s,y=%s)' % (x0, y2_0), xy=(x0, y2_0), xycoords='data', xytext=(-60, +30), textcoords='offset points',
fontsize=12, arrowprops=dict(arrowstyle='->', connectionstyle='arc3,rad=.2'))
# 对坐标做设置
for label in axis.get_xticklabels() + axis.get_yticklabels():
label.set_fontsize(12)
label.set_bbox(dict(facecolor='g', edgecolor='none', alpha=0.7))
plt.show()
输出:
小结:
for label in axis.get_xticklabels() + axis.get_yticklabels(): label.set_fontsize(12) label.set_bbox(dict(facecolor='g', edgecolor='none', alpha=0.7)) 遍历所有的ticks: 对每个label设置字号大小 对每个label的背景框做设置(dict(表面颜色=‘绿色’,边框颜色=‘无’,透明度=70%))
没有什么特别的东西,就是多练,多理解!瑞思拜!!