【问题标题】:How can I place a python gglot figure in a gui?如何在 gui 中放置 python gglot 图形?
【发布时间】:2014-02-17 21:37:29
【问题描述】:

我已经使用 pandas 和 ggplot 在 ipython 中完成了我的数据分析,但现在我想将其移至 gui 并考虑使用 pyqt。

要在 pyqt 中创建图形,我通常会使用 matplotlib,类似这些线的东西..

    import matplotlib.pyplot as plt
    figure = plt.figure()
    figure.add_subplot(111)
    ax.plot(data, '*-')

但我想使用 pandas 和 ggplot 之间的集成。但这不起作用

    p = ggplot(mtcars, aes('mpg', 'qsec')) + geom_point(colour='steelblue')
    ax.plot(p)

如何在 pyqt 程序中绘制 python ggplot 图?

【问题讨论】:

  • ggplot 下面仍然是 matplotlib,但是 iirc 他们广泛使用 pyplot 接口状态机并且每次都创建一个新图形。这可能是可行的,但可能涉及挖掘/重写ggplot 的内容。见github.com/yhat/ggplot/blob/master/ggplot/ggplot.py#L136
  • 你是在找p.draw()吗?
  • 感谢您的回复。 p.draw() 打开一个新窗口,我希望绘制到一个子图。这可能吗?
  • 在上面的p.draw() 将返回一个matplotlib 图形。您可以使用此图添加子图,然后将此轴传递给 pandas 绘图函数或直接使用 matplotlibs 绘图。目前无法将两个 ggplot 图(或任何现有的图与一个新的 ggplot 图)结合起来(参见github.com/yhat/ggplot/issues/160github.com/yhat/ggplot/issues/181)。
  • @Jasc 你能把它作为答案发布吗?

标签: python python-2.7 matplotlib python-ggplot


【解决方案1】:

在上面的 p.draw() 将返回一个 matplotlib 图形。您可以使用此图添加子图,然后将此轴传递给 pandas 绘图函数或直接使用 matplotlibs 绘图。目前无法将两个 ggplot 图(或任何现有的图与一个新的 ggplot 图)结合起来(参见 github.com/yhat/ggplot/issues/160 和 github.com/yhat/ggplot/issues/181)。

【讨论】:

    【解决方案2】:

    通过设置pyplot 的样式,我得到了一个在PyQt5 中工作的python ggplot 图

    import matplotlib.pyplot as plt
    plt.style.use('ggplot')
    

    【讨论】:

      猜你喜欢
      • 2014-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-08
      • 2013-11-15
      • 2016-05-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多