当前位置: 首页 > 面试题库 >

从matplotlib图检索XY数据

计均
2023-03-14
问题内容

我正在wxPython中编写一个小应用程序,它具有一个matplotlib图形(使用wxagg后端)面板。我想为用户添加将图中当前绘制的X,Y数据导出到文本文件的功能。有无创方法可以做到这一点吗?我已经搜索了很多,似乎什么也找不到,尽管我觉得它非常简单而且就在我的面前。

我绝对可以获取数据,并在绘制数据时将其存储在某个位置,并使用它-但这会侵入我的代码的较低级别。如果我可以做些简单的事情,它将变得更加容易并且通用:

x = FigurePanel.axes.GetXData()
y = FigurePanel.axes.GetYData()

希望这是有道理的:)

非常感谢!任何帮助是极大的赞赏!

编辑 :澄清一下,我想知道如何做是获取X,Y数据。在那之后写入文本文件很简单;)


问题答案:

这有效:

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.]])

我通过在轴对象中四处挖掘发现了这些。我只能找到有关这些函数的一些最低限度的信息,可以给它们一个布尔标志以获取原始数据或已处理的数据,不知道是什么意思。

编辑 :乔·肯顿(Joe Kington)展示了一种更简洁的方法:

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]))


 类似资料:
  • 如何在IPython笔记本内的Matplotlib中将图例添加到xy线图中?我目前的尝试: 这样做,我得到以下错误: /Users/mc/.virtualenvs/kaggle/lib/python2.7/site-packages/matplotlib/legend.py:613:用户警告:图例不支持[]使用代理艺术家代替。 http://matplotlib.sourceforge.net/u

  • XY图表(散点图)基于一个由X和Y值列表组成的数据系列。 每个值对(X,Y)是坐标系中的一个点。 这里,一个值确定水平(X)位置,另一个确定垂直(Y)位置。 本章演示了如何使用JFreeChart从给定的业务数据集创建XY Chart 。 业务数据 考虑一个我们想要为所有主流浏览器创建XY图表的示例。 在这里,从不同类别的人收集不同的表现分数,如下所示 - Firefox 分类(X) 分数(Y)

  • 问题内容: 所有。我想在更改图像数据时更新图形的颜色栏。所以像: 但似乎从fig.axes()返回的结果没有我期望的颜色条实例。我可能可以只将colorbar实例作为参数传递给update函数,但是我认为仅传递一个fig参数就足够了。谁能解释一下如何从图中检索颜色条?还是为什么’fig.axes()’不返回AxesImage或Colobar实例,而仅返回Axes或AxesSubplot?我想我只需

  • 互联网日安! 我正在尝试从mysql数据库检索并显示一个图像到一个图像视图(android)中。图像是blob类型。我有以下php代码从MySQL获取图像。 下面是使用JSON的android代码。 提前感谢您的帮助!

  • 最近,我一直试图在Java中缩放像素数组(INT[])。我使用。setrgb()将我所有的像素数据添加到BufferedImage中。然后,BufferedImage提供了一个名为.getScaledInstance()的函数。这对我来说应该很有效,但我遇到了一个问题。.getScaledInstance()返回图像,而不是BufferedImage。对于Image对象,我不能使用.getrgb(

  • 我正在使用SharePreduce进行用户界面设置。 当我想获取的值时,无论它是真是假,都可以播放声音。 但是,当我点击时,即使我将的值更改为false,我总是播放歌曲,你能帮我弄清楚它出了什么问题吗? 正常情况下,我的< code>boolean playSound应该为true或false, 当我单击按钮时,如果playSound为true,则我播放歌曲,否则我不播放它,但似乎永远不会更改此值