2017-02-17 196 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