zhinanpolang 2018-09-21
数据科学社区面临一个共同的问题,即理解多个集合之间的关系是一项基本的数据分析任务。
我找到了两个不同的软件包来创建upset chart,它们是pyUpset和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代码:
from upsetplot import plot plot(example)
生成:
垂直方向:可以使用以Python下代码旋转图形:
from matplotlib import pyplot as plt from upsetplot import generate_data, plot example = generate_data(aggregated=True) plot(example, orientation=’vertical’) plt.show()
输出:
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’)])
输出: