Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用多个函数正确打印并设置线型?_Python_Matplotlib - Fatal编程技术网

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”