假設我有一個很大的對象列表(成千上萬或幾萬),每個對象都標有少量標籤。 有幾十個或幾百個可能的標籤,它們的用法遵循典型的冪律: 一些標籤被非常頻繁地使用,但大多數是罕見的。實際上,除了最常見的幾十個標籤外,其他所有標籤通常都可以忽略不計。數據可視化:泡泡圖,維恩圖和標籤雲(哦,我的!)
現在的問題是如何可視化這些標籤之間的關係。 標籤雲只是它們的頻率很好的可視化,但它忽略哪些標籤與其他標籤發生。 假設標籤:bar僅出現在標籤爲foo的對象上。 這應該是視覺上明顯的。 類似地,三個標籤傾向於一起出現。
你可以讓每個標籤都是一個氣泡,讓它們部分重疊。 從技術上講,這是一個維恩圖,但以這種方式處理它可能會很笨拙。 例如,Google圖表可以創建維恩圖,但僅限於3套或更少的套(標籤): http://code.google.com/apis/chart/docs/gallery/venn_charts.html
它們將其限制爲3套的原因是再多一點,它看起來很可怕。 請參閱維基百科頁面上的「擴展更多數量的套件」:http://en.wikipedia.org/wiki/Venn_diagrams
但是,只有在每個可能的交叉點都是非空的情況下。 如果不超過3個標籤共同出現(也許在拋出罕見標籤後),那麼一組維恩圖可以工作(用氣泡的大小表示標籤頻率)。
或者可能是一個圖形(如在頂點和邊緣)與視覺較厚或較薄的邊緣來表示共現的頻率。
你有什麼想法或指向工具或庫嗎? 理想情況下,我會用javascript來做這件事,但我對R和Mathematica或其他任何東西都是開放的。 如果有人好奇,我很高興分享一些實際的數據(如果我告訴你它代表什麼,你會笑)。
附錄:我最初想到的應用程序是TagTime,但我覺得這也適用於可視化一個美味書籤的問題。
你似乎已經離開了一些關於*編程*從你的問題。 – 2010-07-11 20:30:13
你有語言偏好嗎?另外,你想寫一個桌面應用程序或Web應用程序? – 2010-07-12 12:39:10
他問他應該使用什麼庫。除非他有興趣查看一本書,否則這可能是一個編程問題。 – 2010-07-12 12:52:20