首发公众号:pythonic生物人
分享一个轻量级绘制统计图的包dexplot,轻松绘制这类图~
两优点:
- 不依赖Matplotlib、是一个非常稳定的API;
- 擅长绘制聚合关系(aggregation)图及分布关系(distribution)图。
一缺点:
- 支持绘制的图形类别有限。
dexplot安装
dexplot支持数据介绍
dexplot绘图函数介绍
dexplot支持图形类别介绍
demo
pip install dexplot
支持pandas.DataFrame类格式数据:
dxp.plotting_func(x, #x轴映射的数据
y, #y轴映射数据
data, #绘图依赖的Pandas DataFrame数据
aggfunc, #统计函数,min', 'max', 'mean'等
split, #被当作分组的列
row, #row方向分面的变量
col, #col方向分面的变量
orientation, ...)#垂直or水平展示
A、聚合关系(aggregation)图
- bar
- line
- scatter
- count
B、分布关系(distribution)图
- box
- violin
- hist
- kde
只介绍部分图形,所有的图形绘制形式大同小异~
# bar
dxp.bar(x='neighborhood', y='price', data=airbnb, aggfunc='median')
# 分组bar
dxp.bar(x='neighborhood',
y='price',
data=airbnb,
aggfunc='median',#求每个变量的均值,
split='superhost')#按superhost分组
#堆积bar
dxp.bar(x='neighborhood',
y='price',
data=airbnb,
aggfunc='median',
split='superhost',
split_order=['Yes', 'No'],
stacked=True)
#分面bar
dxp.bar(
x='neighborhood',
y='price',
data=airbnb,
aggfunc='median',
split='superhost',
col='property_type', ##按property_type列分面
col_order=['House', 'Condominium', 'Apartment'], #指定列分面顺序
row='bedrooms', #按bedrooms行分面
row_order=[1, 2, 3]) #指定行分面顺序
#箱图
dxp.box(x='price',
y='neighborhood',
data=airbnb,
split='property_type',#
split_order='desc')
#分面箱图
dxp.box(x='price',
y='neighborhood',
data=airbnb,
split='superhost',
col='property_type',
col_order=['House', 'Condominium', 'Apartment'],
row='bedrooms',
row_order=[1, 2])
#分面kde
dxp.kde(x='price',
data=airbnb,
split='bedrooms',
split_order=[1, 2, 3],
cumulative=True,
col='property_type',
wrap=2)
#分面kde图
dxp.kde(x='price', y='cleaning_fee', data=airbnb, row='neighborhood', wrap=3)
#堆积counts图
dxp.count(val='neighborhood',
data=airbnb,
split='property_type',
orientation='h',
stacked=True,
col='superhost')
#分面scatter图
dxp.scatter(x='longitude',
y='latitude',
data=airbnb,
split='neighborhood',
col='bedrooms',
col_order=[2, 3])