栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

16.matplotlib实现标题和坐标轴的投影效果

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

16.matplotlib实现标题和坐标轴的投影效果

文章目录
  • 1.实现标题和坐标轴标签的投影效果
  • 2.给坐标轴标签添加文本框

1.实现标题和坐标轴标签的投影效果
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倍的距离底部坐标轴的垂直距离
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/923863.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号