数据可视化之箱线图详解

一、箱线图

箱线图(Box-plot)又称盒须图、盒式图或箱形图,是一种用作显示一组数据分散情况资料的统计图,在数据分析中经常被使用到,可以被用于异常值的检测。



通过箱线图可以很容易找到数据中的异常值。

二、使用python绘制箱线图

数据集地址:http://archive.ics.uci.edu/ml/machine-learning-databases/abalone/abalone.data

1、未标准化的箱线图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

if __name__ == "__main__":
    data = pd.read_csv("G:/dataset/abalone.csv")
    #需要绘制箱形图的列,不包括ID列和第一列
    box_data = np.array(data.ix[:,2:10])
    #绘制箱线图
    plt.boxplot(box_data)
    plt.xlabel("特征索引")
    plt.ylabel("四分位间距")
    plt.show()

matplotlib的boxplot默认的上边缘到上四分位数的间距是1.5IQR,可以通过whis参数进行调节,超过了上边缘Q3+1.5IQR和下边缘Q1-1.5IQR的部分视为异常值也就是图中的圆圈所表示的点。通过上面的箱线图可以发现,由于第8个属性的取值区间比较广,导致其他属性的箱线图被压缩。

2、标准化的箱线图

通过将数据进行标准化,可以解决箱线图被压缩的问题。

    #对数据进行标准化
    box_data = (box_data - np.mean(box_data,axis=0)) / np.std(box_data,axis=0)
    plt.boxplot(box_data)

标准化后的数据均值为0,方差为1。标准化之后可以清楚的看到,每个特征的异常值分布情况。



  • 17
    点赞
  • 127
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
当今Python中最流行的数据可视化库是 Matplotlib 和 Seaborn。Matplotlib是一个功能强大的绘图库,可以创建各种类型的图表,而 Seaborn 则是基于 Matplotlib 的高级数据可视化库,提供了更简单、更美观的绘图风格以及更多的统计图表。 下面是一些 Python 数据可视化分析案例的详解: 1. 折线图 折线图是一种经典的数据可视化方式,可以用于表示随时间变化的数据。下面是一个使用 Matplotlib 绘制折线图的例子: ```python import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [3, 7, 2, 5, 9] plt.plot(x, y) plt.show() ``` 上述代码将绘制一个简单的折线图,横坐标是 x 列表,纵坐标是 y 列表。 2. 散点图 散点图是一种用于表示两个变量之间关系的方式,通常用于探索数据中的趋势和异常值。下面是一个使用 Seaborn 绘制散点图的例子: ```python import seaborn as sns tips = sns.load_dataset("tips") sns.scatterplot(x="total_bill", y="tip", data=tips) ``` 上述代码将绘制一个餐厅账单和小费之间的散点图,横坐标是账单总金额,纵坐标是小费金额。 3. 直方图 直方图是一种用于表示连续变量分布的方式,通常用于了解数据的分布情况。下面是一个使用 Matplotlib 绘制直方图的例子: ```python import matplotlib.pyplot as plt import numpy as np data = np.random.randn(1000) plt.hist(data, bins=30) plt.show() ``` 上述代码将绘制一个随机生成的数据集的直方图,bin 参数指定直方图的柱数。 4. 箱线图 箱线图是一种用于表示数据分布和异常值的方式,通常用于比较多个组之间的差异。下面是一个使用 Seaborn 绘制箱线图的例子: ```python import seaborn as sns tips = sns.load_dataset("tips") sns.boxplot(x="day", y="total_bill", data=tips) ``` 上述代码将绘制一个表示不同周几账单总金额分布情况的箱线图。 5. 热力图 热力图是一种用于表示数据密度的方式,通常用于探索数据的相关性。下面是一个使用 Seaborn 绘制热力图的例子: ```python import seaborn as sns flights = sns.load_dataset("flights").pivot("month", "year", "passengers") sns.heatmap(flights, annot=True, fmt="d", cmap="YlGnBu") ``` 上述代码将绘制一个表示航班乘客数量的热力图,横坐标是年份,纵坐标是月份。 以上是一些 Python 数据可视化分析的例子,您可以根据具体需求选择不同的图表类型和绘图库。同时,这些例子只是入门级别,数据可视化的应用场景非常广泛,您可以在实践中不断发掘更多的用法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

修炼之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值