數據科學社區面臨一個共同的問題,即理解多個集合之間的關係是一項基本的數據分析任務。
我找到了兩個不同的軟件包來創建upset chart,它們是pyUpset和upsetplot。
upsetplot:
“這是Lex等人的UpSet圖的另一個Python實現。[ Lex2014 ]。它試圖提供一個簡單的界面,由可擴展的,面向對象的設計支持“ - 引自PyPI中的upsetplot的項目描述
基本輸入格式是pandas.Series,包含與設置的交集大小相對應的計數的序列。
如何安裝?
pip install upsetplot
Python示例:
from upsetplot import generate_data
example = generate_data(aggregated=True)
example
Output:
![可視化相交集|Python中的Upset Chart](http://p2.ttnews.xyz/loading.gif)
然後輸入以下Python代碼:
from upsetplot import plot
plot(example)
生成:
![可視化相交集|Python中的Upset Chart](http://p2.ttnews.xyz/loading.gif)
垂直方向:可以使用以Python下代碼旋轉圖形:
from matplotlib import pyplot as plt
from upsetplot import generate_data, plot
example = generate_data(aggregated=True)
plot(example, orientation=’vertical’)
plt.show()
輸出:
pyUpset
Lex,Gehlenborg等人的UpSet可視化方法套件的純python實現 - 引自Github中pyUpset的項目描述
如何安裝?
pyUpSet在PyPI上,因此可以通過pip以下方式安裝:
pip install pyupset
Python示例
import pyupset as pyu
from pickle import load
with open(‘./test_data_dict.pckl’, ‘rb’) as f:
data_dict = load(f)
pyu.plot(data_dict)
輸出:
交叉點突出顯示:
pyUpSet支持“queries”,即交叉點的突出顯示。要突出顯示的交叉點通過元組指定。例如,以下調用產生圖形,其中突出顯示所有數據,其對應於分類為“adventure”和“action”,或“romance”和“war”的電影。
Python碼:
pyu.plot(data_dict, unique_keys = [‘title’],
additional_plots=[{‘kind’:’scatter’, ‘data_quantities’:{‘x’:’views’, ‘y’:’rating_std’}}, {‘kind’:’hist’, ‘data_quantities’:{‘x’:’views’}}],
query = [(‘adventure’, ‘action’), (‘romance’, ‘war’)])
輸出:
pyUpset vs upsetplot:
- 與upsetplot相比,pyUpset更強大。pyUpset讓用戶使用查詢的強大功能,即突出顯示交叉點
- py-upset不再維護了
- py-upset的輸入格式沒有記錄,而upsetplot的輸入格式已有詳細記錄
- py-upset不支持python 2和更新版本的matplotlib
- upsetplot是一個更乾淨的版本,一旦輸入數據集固定,就可以輕鬆實現
閱讀更多 不靠譜的貓 的文章