如何正确绘制使用多个功能并设置线条样式?

时间:2013-02-18 22:13:04

标签: 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','Thursday'))

关键是我要为每个图设置线型 - 前三个函数分别生成一个图,第四个函数生成两个图。所有这些都是相同的数字。要设置样式,我可以

  • 为每个函数提供一个参数'linestyle',它将赋予pyplot.plot函数
  • 返回Line2D对象并使用setp
  • 设置线条样式
  • 不要让函数进行任何绘图,只返回数据
  • 提供执行实际绘图的回调函数

您对策略有什么建议吗?

1 个答案:

答案 0 :(得分:1)

从用户的角度来看,我个人的偏好是有一个合理的默认值,并且可以访问包的内部,这样我就可以调整一些东西,如果我真的需要或想要的话。

在这种特殊情况下,您将在matplotlib之上添加用户友好的功能。因此,通过不向用户提供对行实例的访问,您还隐藏了基本包的一些功能,并且在我看来,这几乎总是一件坏事。由于matplotlib本身提供了大量有用的*args**kwargs,因此应该有理由不在您的功能中接受它们并将它们转发到底层的绘图例程。如果用户提供无意义的参数,那就是他们的问题,而不是你的问题---如果你愿意,可以尝试捕捉绘图引擎引发的异常。

此外,如果你不仅仅返回一行,而是返回完整的axes实例,那么你可能会在某个地方拯救一个贫穷的研究生的大量汗水,她的老板已经命令他们将一个网格添加到情节。