【发布时间】:2016-11-15 06:53:18
【问题描述】:
I already checked out this question, but it didn't solve my problem.
你好!我有一个 pyplot 图:
def foo(数据): 图,斧头 = plt。子图(figsize=(20, 10), dpi=100)
xaxis = (list with x values)
yaxis = (numpy array with y values)
ax.plot(xaxis, yaxis)
我希望 foo() 返回 x 和 y 值。我知道我可以这样做
return xvalues, yvalues
但我想从图中提取数据。
我已尽力阅读 pyplot 文档,但我对它还是很陌生,所以如果我在做一些愚蠢的事情,请告诉我!
编辑:抱歉,我描述的不够充分。我正在尝试为模块编写单元测试,其中一种方法是生成和保存图形。 foo() 不一定要返回 x 和 y 数据,我只是希望它返回一些我可以用来确保它正确生成绘图的东西。我知道 matplotlib 内置了测试功能,但我必须重组很多代码才能使其正常工作。
【问题讨论】:
-
不使用您已有的数据非常愚蠢,是的。如果你有
xvalues和yvalues,那么使用它们。将这些数据放在其他地方,然后尝试从其他地方而不是您最初拥有的地方获取数据,这简直是愚蠢的。 -
您肯定错过了解释您的全部问题,否则您的问题没有意义(正如@Wayne 所说:只需返回您的原始数据)。你没有告诉我们什么?我怀疑是 XY 问题:您正在尝试解决另一个问题,而您正在尝试做的这个问题是为了解决派生问题。如果您说出您真正想要的是什么,我们可以帮助您正确地做到这一点。
-
从您的编辑来看,我认为您违反了测试原则之一,即将您的被测系统 (SUT) 与外部依赖项隔离开来。您需要测试您的代码,而不是它与外部库的交互,更不用说外部库本身了。
标签: python matplotlib