【问题标题】:Interactive graph Python Jupyter /Matplotlib交互式图形 Python Jupyter /Matplotlib
【发布时间】:2017-09-03 16:12:08
【问题描述】:

我发现用 python Jupyter 制作交互式图表绝对没有什么精确的...我在 Spyder 中只有一个 plt.plot 可以生成条形图,当我用鼠标进入条形图时,我只想知道条形图的名称弹出,仅此而已。对于曲线周围有一些点的曲线也是如此,我想要当我点击一个点时,它会给我点的名称和它的 x(它们是日期)......

我又没有发现任何确切的信息,有什么想法吗?

举个例子。

[in] Myexample
[out]
2018-01-31     4
2018-04-30    21
2018-07-30    12
2018-10-31    14
2019-01-31    21
2019-04-30    183
2019-07-30    12
2019-10-31    11
2020-01-31    9

[in] Myexample.plot(kind='bar')
[out] My bar-chart. 

现在我正在尝试当我将光标移到此栏之一时,它会返回我的日期...它看起来很基本,但又找不到确切的信息...

谢谢!!

【问题讨论】:

  • 你可能想谷歌 plot.ly
  • 感谢您的回答,我试过了,但由于我的数据受到保护,而且 plot.ly 的演示帐户可以访问它,我无法使用它...
  • bokeh.pydata.org/en/latest 可能是一个选项
  • 当然,我正在尝试使用 Matplotlib,它看起来是做我想做的最好的,但我找不到任何真实的例子......
  • 您可能想使用一个名为'mpldatacursor' 的包。要构建您自己的自定义工具,您可以从 this example 开始。您还应该edit您的问题更具体,以便可以准确回答。

标签: python python-2.7 matplotlib ipython bar-chart


【解决方案1】:

下面的代码应该可以创建交互式条形图或折线图(也在之前的帖子中讨论过)(Jupyter Notebook 5.0.0、Python 3.6.6)

导入库

import datetime
from datetime import date
import pandas as pd
import numpy as np
from plotly import __version__
from matplotlib import pyplot as plt
%matplotlib inline

import cufflinks as cf
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot 
init_notebook_mode(connected=True)

init_notebook_mode(connected=True)
cf.go_offline()

创建样本数据

x = ['2018-01-31', '2018-04-30', '2018-07-30', '2018-10-31', '2019-01-31', '2019-04-30',
     '2019-07-30', '2019-10-31', '2020-01-31']
y = [4, 21, 12, 14, 21, 183, 12, 11, 9]
df = pd.DataFrame({'x':x, 'y': y})
df['x'] = pd.to_datetime(df['x'])
df.head(2)

创建交互式条形图

data = [go.Bar(
          x=df.x,
          y=df.y)]

pyo.iplot(data)

【讨论】:

    【解决方案2】:

    我建议你使用Plotly 库结合cufflinks,它是plotly 和pandas.DataFrame 对象的包装器

    默认情况下,这两个包都有一个在线版本,因此请确保为您的案例导入离线版本。

    from plotly.offline import init_notebook_mode, iplot
    init_notebook_mode()
    
    import cufflinks
    cufflinks.go_offline()
    

    对于您的示例,您只需调用:

     Myexample.iplot(kind='bar')
    

    【讨论】:

      猜你喜欢
      • 2018-07-04
      • 1970-01-01
      • 2018-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-28
      • 2016-11-16
      • 2011-03-13
      相关资源
      最近更新 更多