我正在编辑一个函数来创建日期图,它有硬编码的格式化参数。为了简洁和灵活,我尝试添加一个format_ax
类型的函数。我已经阅读了matplotlib中关于custom styling的文档,但是我不知道如何或者是否可以封装所有需要的内容轴集?xxx()将参数放入一个函数中,您可以轻松地操作和调用多个自定义绘图函数。首先,我想知道:我能/如何通过夸克斧头吗?
我编写的函数已经有了用于格式化所需颜色的kwargs。我试着把相关的代码行放入它自己的函数中。例如:
def format_ax_nicely(ax, **kwargs):
ax.set_ylim(bottom=ymin, top=ymax)
但是当我在my_timeseries_function
中调用format_ax_nicely
时,我遇到了一个错误NameError: name 'ymin' is not defined
。在
使用ax.set()
是我考虑过的另一种方法,但是您不能设置大小,只能定义限制和值等。。在
我也尝试了函数定义方法defined here和def add_titlebox
,但我仍然不能使用kwargs。我有个错误:
**编辑:感谢@TheImportanceOfBeingErnest指出这些错误发生的原因!在
这是我功能的大致结构:
def my_timeseries_function(lots of parameters, **kwargs, **plotargs):
# set up filesaving destination
# cleanup dataframe
# set labels
fig, ax = plt.subplots(figsize=figsize)
hues = create_custom_color_values(df, cmap, **kwargs)
ax.grid(color="k", linestyle="-", linewidth=0.05)
for g in labels:
# plot x,y with custom colors
# roughly 15 lines of formatting functions like set_ylabel, ax.legend,
# xaxis.set_major_locator, tick_params, conditional set_ylim which
# would ideally be replaced by:
format_ax_nicely(ax, **plotargs)
这个问题的目的是如何实现my_timeseries
可以调用的“format”函数。然而,由于我是一个新手,如果matplotlib的用户不推荐这样做,那么我第二次问样式表是否“更好”?这似乎很难调整,因为样式表是全球环境的一部分,但它也可能是我的目标的一个可能的答案:更容易地为我的绘图设置样式。在
其他背景 一些Seaborn包通过将所有格式保留在函数内来实现灵活性。我不能使用他们的软件包,因为我需要以他们目前无法实现的方式对点进行着色,而且我也无法在我正在使用的软件包中创建seaborn依赖项。在
与我的班级相关的套餐:
import numpy as np
import pandas as pd
import geopandas as gp
import matplotlib.pyplot as plt
import matplotlib.colors as colors
import matplotlib.dates as mdates
import matplotlib.cm as cm
try:
import geoplot
except BaseException:
pass
我很难理解你到底需要什么。我确实认为使用函数的方法,它可以设置轴的样式。在
也许是个提醒:如果一个变量没有被定义,它就不能被使用。所以你得到了错误。 你的选择是
定义参数
从关键字获取参数
关于标题的字体大小
一些样式选项可以通过rcParams全局设置。它们包括字体、大小、颜色、轴记号外观等,但绘图的限制不在这些范围之内。不过,您可以在临时样式的上下文中使用它们
相关问题 更多 >
编程相关推荐