这工作:
In [1]: import matplotlib.pyplot as plt
In [2]: plt.plot([1,2,3],[4,5,6])
Out[2]: [<matplotlib.lines.Line2D at 0x30b2b10>]
In [3]: ax = plt.gca() # get axis handle
In [4]: line = ax.lines[0] # get the first line, there might be more
In [5]: line.get_xdata()
Out[5]: array([1, 2, 3])
In [6]: line.get_ydata()
Out[6]: array([4, 5, 6])
In [7]: line.get_xydata()
Out[7]:
array([[ 1., 4.],
[ 2., 5.],
[ 3., 6.]])
我发现这些在轴线物体周围挖。我只能找到关于这些函数的一些minimal information,显然你可以给它们一个布尔标志来获得原始数据或处理过的数据,不确定是什么意思。
编辑:乔金顿呈略微更合适的方法来做到这一点:我发誓,我用Google搜索,我能想到的词的每一个可能的组合
In [1]: import matplotlib.pyplot as plt
In [2]: lines = plt.plot([1,2,3],[4,5,6],[7,8],[9,10])
In [3]: lines[0].get_data()
Out[3]: (array([1, 2, 3]), array([4, 5, 6]))
In [4]: lines[1].get_data()
Out[4]: (array([7, 8]), array([ 9, 10]))
,但跨线程没来!感谢您的链接。 – brettb
我只发现通过搜索'matplotlib get_xdata',而不是使用SO的标准搜索。 –
只是供参考:一般来说,matplotlib绘图函数会返回一个'Artist'实例(或'plot'情况下的艺术家序列),其中包含数据,样式信息等。许多艺术家具有'get_data'和'set_data'方法(例如,你可以做'x,y = line.get_data()')。对于某些人来说,该方法可能被称为别的东西(例如'scatter'返回一个集合,其中等价方法是'get_offsets')。一些艺术家(例如'ContourSets')不包含对原始输入数据的引用,但是这是相当罕见的。基本上,你想要坚持绘图功能的输出。 –