I already checked out this question, but it didn't solve my problem.
您好!我有一个pyplot数字:
def foo(数据): fig,ax = 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内置了测试内容,但我必须对我的许多代码进行重构才能使其正常工作。答案 0 :(得分:2)
我认为以下代码可以完成您想要的简单线图:
import numpy as np
import matplotlib.pyplot as plt
def foo(xaxis, yaxis):
fig, ax = plt. subplots(figsize=(20, 10), dpi=100)
curve = ax.plot(xaxis, yaxis)
# curve = [Line2D object]
return curve[0].get_xdata(), curve[0].get_ydata()
x,y = foo(range(10), range(0,20,2))
print(x,y)