And*_*lev 17 python matplotlib
我有一个wxPython
从不同数据集读取的程序,对数据执行各种类型的简单动态分析,并绘制数据集到matplotlib
画布的各种组合.我希望有机会将当前绘制的数据转储到文件中,以便稍后进行更复杂的分析.
问题是:是否有任何方法matplotlib
可以访问当前绘制的数据matplotlib.Figure
?
Dav*_*d Z 25
Jakub正确地修改Python脚本以直接从发送到绘图的源中写出数据; 这就是我喜欢这样做的方式.但作为参考,如果你确实需要从一个情节中获取数据,我认为应该这样做
gca().get_lines()[n].get_xydata()
Run Code Online (Sandbox Code Playgroud)
或者,您可以单独获取x和y数据集:
line = gca().get_lines()[n]
xd = line.get_xdata()
yd = line.get_ydata()
Run Code Online (Sandbox Code Playgroud)
可matplotlib.pyplot.gca
用于从 matplotlib 图中提取数据。这是一个简单的例子:
import matplotlib.pyplot as plt
plt.plot([1,2,3],[4,5,6])
ax = plt.gca()
line = ax.lines[0]
line.get_xydata()
Run Code Online (Sandbox Code Playgroud)
运行此程序时,您将看到 2 个输出 - 绘图和数据:
array([[1., 4.],
[2., 5.],
[3., 6.]])
Run Code Online (Sandbox Code Playgroud)
您还可以分别获取 x 数据和 y 数据。运行时line.get_xdata()
,您将得到:
array([1, 2, 3])
Run Code Online (Sandbox Code Playgroud)
运行时line.get_ydata()
,您将得到:
array([4, 5, 6])
Run Code Online (Sandbox Code Playgroud)
注: gca
代表获取当前轴
总结一下,供以后参考:
如果使用plt.plot()
或plt.stem()
或进行绘图plt.step()
,您可以使用以下命令获取 Line2D 对象的列表:
ax = plt.gca() # to get the axis
ax.get_lines()
Run Code Online (Sandbox Code Playgroud)
对于plt.pie()
,plt.bar()
或者plt.barh()
您可以通过以下方式获取楔形或矩形对象的列表:
ax = plt.gca() # to get the axis
ax.patches()
Run Code Online (Sandbox Code Playgroud)
然后,根据情况,您可以通过运行来获取数据get_xdata()
,get_ydata()
(请参阅Line2D)以获取更多信息。
或者 ieget_height()
获取条形图(请参阅矩形)以获取更多信息。
一般来说,对于所有基本绘图函数,您可以通过运行ax.get_children()找到您要查找的内容
返回子级列表Artists
(基类包括图形的所有元素)。
归档时间: |
|
查看次数: |
16957 次 |
最近记录: |