春江暮客

Seaborn绘制核密度曲线实例详解

技术

在频率分布直方图中,当样本容量充分放大到极限时,组距极限缩短,这个时候频率直方图中的阶梯折线就会演变成一条光滑的曲线,这条曲线就称为总体的密度分布曲线。

这篇文章春江暮客将详细介绍如何使用python绘图库seaborn和panda里面的iris也就是鸢尾花卉数据集来绘制各种炫酷的密度曲线。

1.基本密度曲线

    import seaborn as sns
    sns.set(color_codes=True)
    sns.set_style("white")
    df = pd.read_csv('iris.csv')
    sns.kdeplot(df['sepal_width'])

使用seaborn画核密度曲线,只需要使用kdeplot就行,注意,密度曲线只需要一个变量就可以了,这里我们选用的是sepal_width这一列。

2.添加阴影的密度曲线

    import seaborn as sns
    sns.set(color_codes=True)
    sns.set_style("white")
    df = pd.read_csv('iris.csv')
    sns.kdeplot(df['sepal_width'],shade=True)

在kdeplot画图时制定shadow即可。

3.水平方向密度曲线

    import seaborn as sns
    sns.set(color_codes=True)
    sns.set_style("white")
    df = pd.read_csv('iris.csv')
    sns.kdeplot(df['sepal_width'],shade=Truevertical=True)

vertical指定是否变成横向的密度曲线,虽然英文的意思是垂直的,不是很好理解的样子,但是效果就是变成水平方向。0-0

4.频率宽度调整

    import seaborn as sns
    sns.set(color_codes=True)
    sns.set_style("white")
    df = pd.read_csv('iris.csv')
    p1 = sns.kdeplot(df['sepal_width'], shade=True, bw=.5, color="red")
    p1 = sns.kdeplot(df['sepal_width'], shade=True, bw=.05, color="blue")

由于不同的频率宽度使得同一个数据得到的密度曲线不一样,频率宽度越小,会使得密度曲线越不平滑。

5.比较多个变量的密度曲线

    import seaborn as sns
    sns.set(color_codes=True)
    sns.set_style("white")
    df = pd.read_csv('iris.csv')
    p1=sns.kdeplot(df['sepal_width'], shade=True, color="red")
    p1=sns.kdeplot(df['sepal_length'], shade=True, color="blue")

多个变量我们就画两个密度图放一起。

6.两变量点的密度曲线


    import seaborn as sns
    sns.set(color_codes=True)
    sns.set_style("white")
    df = pd.read_csv('iris.csv')
    sns.kdeplot(df['sepal_width'],df['sepal_length'], shade=True, color="red")

需要注意的是,这里炫酷的地图一般的密度曲线跟前一个图是不一样的概念,一个是多个变量的分别对应的密度曲线,这个是一个二维数据的密度曲线,x,y是作为一个组合出现的。

总结:

针对如何使用python的seaborn包画出各种不同的炫酷的密度曲线图,本文进行了kdeplot函数的详细介绍,更多用法请参考官方文档

Related

python随机生成强密码

杂谈
python随机生成强密码

由于安全需要,建议网友们在不同的网站上都使用不同的强密码,那么每次设置一个强密码还是比较麻烦的,这里我们写一个使用python生成强密码的小程序。以后要用的话直接访问以下网站把密码复制粘贴过来就好

人工神经网络初探

技术
人工神经网络初探

人工神经网络(Artificial Neural Network,ANN),简称神经网络(Neural Network,NN)或类神经网络,是一种模仿生物神经网络的结构和功能的数学模型。它由大量神经元联结进行运算,大多数情况下人工神经网络能够在外界信息的基础上改变内部结构,是一种自适应系统,通俗的讲就是具备学习功能