Python 如何使用多个函数正确打印并设置线型?
我写了一个科学软件包,它有很多不同的绘图功能,可以计算数据,然后绘制绘图。我经常想在一个图形中绘制多条曲线,但我不确定如何正确处理这一点。代码可能如下所示:Python 如何使用多个函数正确打印并设置线型?,python,matplotlib,Python,Matplotlib,我写了一个科学软件包,它有很多不同的绘图功能,可以计算数据,然后绘制绘图。我经常想在一个图形中绘制多条曲线,但我不确定如何正确处理这一点。代码可能如下所示: plot_temperature_graph_of_day(day='Monday') plot_temperature_graph_day(day='Tuesday') plot_week_mean_temperature() plot_temperature_graph_of_several_days(('Wednesday','Thu
plot_temperature_graph_of_day(day='Monday')
plot_temperature_graph_day(day='Tuesday')
plot_week_mean_temperature()
plot_temperature_graph_of_several_days(('Wednesday','Thursday'))
重点是,我想为每个绘图设置线型-前三个函数分别生成一个绘图,第四个函数生成两个绘图。所有这些都是同一个图形。要设置样式,我可以
- 为每个函数提供一个参数“linestyle”,该参数将提供给
函数pyplot.plot
- 返回Line2D对象并使用
setp
- 不要让函数进行任何绘图,只返回数据
- 提供执行实际打印的回调函数
你对这一策略有什么建议吗?从用户的角度来看,我个人的偏好是有一个合理的默认设置,以及对软件包内部的访问权限,这样,如果我真的需要或想要的话,我可以调整一些东西 在这种情况下,您将在matplotlib之上添加用户友好的功能。因此,通过不让用户访问行实例,您也隐藏了基本包的一些功能,在我看来,这(几乎)总是一件坏事。由于matplotlib本身提供了一大堆有用的
*args
和**kwargs
,因此应该有理由在功能中不接受它们,而只是将它们转发给底层打印例程。如果用户提供了一个无意义的参数,这是他们的问题,而不是你的问题——如果你愿意,你可以尝试捕获绘图引擎引发的异常
此外,如果您不仅返回一条直线,还返回完整的
轴
实例,那么您可能会为某个可怜的研究生节省大量的汗水,因为她的老板命令她在绘图上添加网格 从用户的角度来看,我个人的偏好是有一个合理的默认设置,并且可以访问包的内部,这样,如果我真的需要或想要的话,我可以调整东西
在这种情况下,您将在matplotlib之上添加用户友好的功能。因此,通过不让用户访问行实例,您也隐藏了基本包的一些功能,在我看来,这(几乎)总是一件坏事。由于matplotlib本身提供了一大堆有用的*args
和**kwargs
,因此应该有理由在功能中不接受它们,而只是将它们转发给底层打印例程。如果用户提供了一个无意义的参数,这是他们的问题,而不是你的问题——如果你愿意,你可以尝试捕获绘图引擎引发的异常
此外,如果您不仅返回一条直线,还返回完整的
轴
实例,那么您可能会为某个可怜的研究生节省大量的汗水,因为她的老板命令她在绘图上添加网格 为什么不让用户指定*args
和/或**kwargs
,然后将其转发到绘图原语,并返回一个直线(甚至一个轴)实例,以防他们想进一步调整它?这听起来不错。这是一种常见的做法还是你自己想出来的?不知道这种做法有多普遍,你会有兴趣听到更多有教育意义的意见。我个人的看法是,最好同时给用户一个合理的默认值和所有访问权限,以防他们准备冒险。1)返回axis有什么好处?2) 如果你写一个答案,我可以接受它并投票:)你在那里。抱歉输入错误,我指的是一个axes
实例,而不仅仅是一个“axis”,为什么不让用户指定*args
和/或**kwargs
,然后将其转发到绘图原语,并返回一条直线(甚至是一个axis)实例,以防他们想进一步调整它?这听起来不错。这是一种常见的做法还是你自己想出来的?不知道这种做法有多普遍,你会有兴趣听到更多有教育意义的意见。我个人的看法是,最好同时给用户一个合理的默认值和所有访问权限,以防他们准备冒险。1)返回axis有什么好处?2) 如果你写一个答案,我可以接受它并投票:)你在那里。抱歉输入错误,我指的是一个axis
实例,而不仅仅是一个“axis”