Python 统计图表

Python-Dexplot 简介

「官网」

Dexplot库的官网如下:https://www.dexplo.org/dexplot/

「安装方式」

Dexplot库的安装方式也十分简单,如下:

  1. pip install dexplot

「绘图所需数据类型」

Dexplot库可同时支持“长数据”和“宽数据”类型,这一点和R-ggplot2绘图所需要的数据类型相似(ggplot2只支持长数据),下面通过两幅图展示一下什么是长数据和宽数据:
2021-05-19-09-01-52-709446.png
long_data
2021-05-19-09-01-52-848079.png
width_data

「基本用法」

Dexplot库提供了用于绘制不同图表的绘图函数,但其基本使用语法如下:

  1. dxp.plotting_func(x, y, data, aggfunc, split, row, col, orientation, ...)

各参数解释如下

  • x:沿x轴的列名
  • y:沿y轴的列名
  • data:Pandas DataFrame数据类型。
  • aggfunc:pandas常用聚类计算函数。
  • split:将数据分到不同组的的数据列名。
  • row:用于按行将数据拆分为不同的子图的数据列名。
  • col:用于按列将数据拆分为不同的子图的数据列名。
  • orientation:绘图方向,有垂直(‘v’)或水平(‘h’)。大多数图的默认设置为垂直。

    「主要绘图类型」

    Dexplot绘图库主要提供聚类图和分布图两种数据类型, 聚合图采用一系列值,并使用提供给aggfunc的函数返回单个值,而分布图采用一系列值并以某种方式描述分布形状。接下来通过具体可视化图表展示Dexplot库绘图魅力。

    Python-Dexplot样例展示

    「样例一」:柱形图系列

    1. import dexplot as dxp
    2. import pandas as pd
    3. import matplotlib.pyplot as plt
    4. airbnb = dxp.load_dataset('airbnb')
    5. #bar01
    6. dxp.bar(x='neighborhood', y='price', data=airbnb, aggfunc='median',figsize=(5,3.5),
    7. bar_kwargs={"color":"#0073C2","ec":"black"})
    2021-05-19-09-01-52-999672.png
    Example01 of dxp.bar

    排序

    1. dxp.bar(x='neighborhood', y='price', data=airbnb, aggfunc='median',
    2. figsize=(5,3.5),sort_values='asc',bar_kwargs={"color":"#0073C2","ec":"black"})
    2021-05-19-09-01-53-179193.png
    Example02 of dxp.bar

    水平

    1. dxp.bar(x='price', y='neighborhood', data=airbnb, aggfunc='median', figsize=(3,4),
    2. orientation='h', sort_values='desc',bar_kwargs={"color":"#EFC000","ec":"black"})
    2021-05-19-09-01-53-301862.png
    Example03 of dxp.bar

    分组

    1. dxp.bar(x='neighborhood', y='price', data=airbnb, aggfunc='median', split='superhost',figsize=(4,2.5),
    2. cmap=["#0073C2","#EFC000"],bar_kwargs={"ec":"black"})
    2021-05-19-09-01-53-459440.png
    Example04 of dxp.bar

    分面

    1. dxp.bar(x='neighborhood', y='price', data=airbnb, aggfunc='median', split='superhost',
    2. col='property_type', col_order=['House', 'Condominium', 'Apartment'],
    3. row='bedrooms', row_order=[1, 2, 3], sharey=False,cmap=["#0073C2","#EFC000"],
    4. bar_kwargs={"ec":"black"})
    2021-05-19-09-01-53-674863.png
    Example05 of dxp.bar

    「样例二」:箱线图系列

    1. dxp.box(x='price', y='neighborhood', data=airbnb,cmap=["#CD534C"],figsize=(3,3))
    2021-05-19-09-01-53-848400.png
    Example01 of dxp.box

    分组

    1. dxp.box(x='price', y='neighborhood', data=airbnb,figsize=(3,3.5),
    2. cmap=["#0073C2","#EFC000","#868686","#CD534C"],
    3. split='property_type', split_order='desc')
    2021-05-19-09-01-54-099731.png
    Example02 of dxp.box

    「样例三」:密度图(KDE)

    1. dxp.kde(x='price', data=airbnb, split='bedrooms', split_order=[1, 2, 3],
    2. cmap=["#0073C2","#EFC000","#868686"])
    2021-05-19-09-01-54-385961.png
    Example of dxp.kde

    「样例四」:散点图

    1. dxp.scatter(x='longitude', y='latitude', data=airbnb,
    2. split='neighborhood', col='bedrooms', col_order=[2, 3])
    2021-05-19-09-01-54-574457.png
    Example of dxp.scatter