2017-02-17 191 views
2

我想可视化存储在字典数据可视化 - 气泡图在python

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

作为气泡图一些数据,与对应于该值的气泡尺寸。理想情况下,我想要交互性;当鼠标悬停在泡泡上时,例如,您会看到名称“猫”。

如何实现此目标的任何建议和提示?

的想法,我必须是建立一个大熊猫据帧,df =

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

其中x,y参数是用来告诉像seaborn气泡的位置,而“爱”决定大小的气泡。这感觉有点笨重,特别是因为我有超过3排。如果气泡的位置是自动选择的,我希望它。

当然,这只是一个想法,所以任何建议都非常欢迎!

回答

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

结果(上悬停示出标签):

example