- 1.实现标题和坐标轴标签的投影效果
- 2.给坐标轴标签添加文本框
import matplotlib.pyplot as plt
import matplotlib.patheffects as pes
import matplotlib as mpl
import numpy as np
x = np.linspace(0.5,3.5,100)
y = np.sin(x)
fontsize = 23
# plot a sin(x) func
plt.plot(x,y,ls="--",lw=2)
# set text contents
title = "$y=sin({x})$"
xaxis_label = "$x_axis$"
yaxis_label = "$y_axis$"
# get text instance
title_text_obj = plt.title(title,fontsize=fontsize,va="bottom")
xaxis_label_text_obj = plt.xlabel(xaxis_label,fontsize=fontsize-3,alpha=1.0)
yaxis_label_text_obj = plt.ylabel(yaxis_label,fontsize=fontsize-3,alpha=1.0)
# set shadow
title_text_obj.set_path_effects([pes.withSimplePatchShadow()])
pe=pes.withSimplePatchShadow(offset=(1,-1),shadow_rgbFace="r",alpha=.3)
xaxis_label_text_obj.set_path_effects([pe])
yaxis_label_text_obj.set_path_effects([pe])
plt.show()
这里引入一个新类patheefects(路径效果),将patheffects简记成pes。首先对标题和坐标轴标签的内容进行添加,将标题和坐标轴的文本内容对象进行保存,放到变量title_text_obj、xaxis_label_text_obj、yaxis_label_text_obj中。然后,设置文本内容投影,这里主要通过抽象基类的实例方法
Artist.set_path_effects(path_effects)来实现,实例方法set_path_effects(path_effects)中的参数path_effects是实例列表,列表中的实例就是调用pes类中的withSimplePatchShadow类,该类的主要参数含义如下:
offset:文本内容投影相对文本内容本身的偏离距离 shadow_rgbFace:投影的颜色 alpha:投影的透明度,范围是0.0~1.0,数值越大透明度越小2.给坐标轴标签添加文本框
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
x = np.linspace(0.5,3.5,100)
y = np.sin(x)
fig = plt.figure(figsize=(8,8))
ax = fig.add_subplot(111)
box = dict(facecolor="#6959CD",pad=2,alpha=0.4)
ax.plot(x,y,c="b",ls="--",lw=2)
# set text contents
title = "$y=sin({x})$"
xaxis_label = "$x_axis$"
yaxis_label = "$y_axis$"
ax.set_xlabel(xaxis_label,fontsize=18,bbox=box)
ax.set_ylabel(yaxis_label,fontsize=18,bbox=box)
ax.set_title(title,fontsize=23,va="bottom")
ax.yaxis.set_label_coords(-0.08,0.5)
ax.xaxis.set_label_coords(1.0,-0.05)
ax.grid(ls="-.",lw=1,color="gray",alpha=0.5)
plt.show()
通过调用Axes的实例方法set_xlabel()和set_ylabel(),关键字参数bbox是实现坐标轴标签文本框的关键, 参数值是字典数据结构,而且实例化方法set_label_coords()是确定文本位置的关键,实例方法 set_label_coords()的参数采用Axes坐标系统,即取值范围从0.0到1.0,数值取负数表示与坐标轴方向 相反的距离。例如(-0.5,0.1)表示左边坐标轴的左侧和底部坐标轴上方的距离交点。因此有序数对(a,b) 表示x轴长度a倍的距离左侧坐标轴的水平距离和y轴长度b倍的距离底部坐标轴的垂直距离



