如何从pyplot图中提取数据

时间:2016-07-12 21:07:34

标签: python matplotlib

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内置了测试内容,但我必须对我的许多代码进行重构才能使其正常工作。

1 个答案:

答案 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)