python - 使用自定义 matplotlibrc 文件运送 Python 包
问题描述
我正在编写一个包,其中包括使用 matplotlib 进行一些绘图。我希望使用该包生成的所有绘图都遵循在matplorlibrc
文件中定义的自定义样式。目前,我使用的(最小)包结构如下:
pkg
├── pkg
│ ├── afile.py
│ ├── __init__.py
│ └── _mpl_config
│ └── style.mplstyle
└── setup.py
以下是靠近顶部的afile.py
:
import os
import matplotlib.pyplot as plt
plt.style.use(os.path.join(
os.path.split(__file__)[0], '_mpl_config', 'style.mplstyle'))
# some plotting routines...
在__init__.py
:
import pkg.afile
完成后pip install
,我可以使用绘图例程
import pkg
pkg.<plotting_routine>
到目前为止,这似乎有效,因为上面的行指示 matplotlib 使用在<path_to_pkg>/pkg/_mpl_config/style.mplstyle
. 但是,我不确定这是否足够强大(即将在所有导入情况下使用)或者是否有更好的方法。
解决方案
你不应该用你的包覆盖 matplotlib 样式,因为最终用户可能希望在其代码的其他部分使用它自己的样式。相反,每次要制作绘图时都使用上下文管理器:
with mpl.style.context(os.path.join(os.path.split(__file__)[0], '_mpl_config', 'style.mplstyle')):
# Do your plotting here
推荐阅读
- c# - 如何调度控制台应用程序 C#
- blueprism - 如何解决 Blueprism 中的此错误。“找不到与阶段‘开始’链接的阶段。” 进行中工作室
- php - 在 Laravel 中排队邮件
- react-native - 网页导航 react-navigation
- c# - 无法加载文件或程序集“System.Runtime.InteropServices”
- node.js - 单击按钮时将id设置为true时如何保存其他详细信息
- git - 为什么使用 BFG 后 repo 大小仍然很大但克隆大小要小得多
- ansible - 无法打印输出
- php - 如何 jquery 验证动态生成的隐藏文本区域
- r - Default text color of axes in ggplot