【问题标题】:Data Visualisation - bubble plots in python数据可视化 - python 中的气泡图
【发布时间】:2017-02-17 03:11:42
【问题描述】:

我想可视化一些存储在字典中的数据

foo = {'cat':5, 'dog':1, 'elephant':10}

作为气泡图,气泡大小对应于值。理想情况下,我想要交互性;例如,将鼠标悬停在气泡上时,您会看到名称“猫”。

关于如何实现这一点的任何建议和提示?

我的一个想法是创建一个 pandas 数据框,df =

    Animals     Love    x   y
0   cat         5       0   0
1   dog         1       1   0
2   elephant    10      0   1

x,y 参数用于告诉 seaborn 之类的气泡的位置,而“Love”决定了气泡的大小。这感觉有点笨拙,尤其是当我有超过 3 行时。如果气泡的位置是自动选择的,我希望它。

当然,这只是一个想法,欢迎提出任何建议!

【问题讨论】:

    标签: python visualization seaborn


    【解决方案1】:

    我还没有找到使用matplotlib 的简单方法,但如果您不介意浏览器显示,可以尝试mpld3。这是一个例子:

    import matplotlib.pyplot as plt
    import numpy as np
    import mpld3
    
    fig, ax = plt.subplots(subplot_kw=dict(axisbg='#EEEEEE'))
    N = 10
    
    #     Animals     Love    x   y
    # 0   cat         5       0   0
    # 1   dog         1       1   0
    # 2   elephant    10      0   1
    
    x = np.array([0, 1, 0])
    y = np.array([0, 0, 1])
    s = np.array([5, 1, 0]) * 1000  # make circle looks bigger
    c = np.array(['red', 'green', 'blue'])
    labels = ['cat', 'dog', 'elephant']
    
    scatter = ax.scatter(x, y, c=c, s=s, alpha=0.3)
    ax.grid(color='white', linestyle='solid')
    
    ax.set_title("Scatter Plot (with tooltips!)", size=20)
    
    tooltip = mpld3.plugins.PointLabelTooltip(scatter, labels=labels)
    mpld3.plugins.connect(fig, tooltip)
    
    mpld3.show()
    

    结果(悬停时显示的标签):

    【讨论】:

      【解决方案2】:

      您可以使用bokeh python 库进行交互式可视化。

      http://docs.bokeh.org/en/latest/docs/gallery/categorical.html

      结合figure 中的悬停功能并绘制圆形/气泡代替上述教程中的矩形。

      【讨论】:

        猜你喜欢
        • 2014-12-05
        • 2019-11-04
        • 2011-03-14
        • 2014-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-23
        相关资源
        最近更新 更多