python统计数据_Python中的统计数据展示

Python中的统计数据展示

1、数据可以分为“分类型”或“数值型”,如果变量是数值型的,我们就采用某些特定的统计方法,相反,如果数据是定性分类的,那么我们可以采用另外的办法,

1.1、分类数据

①布尔数据

②名义数据

③等级数据(有序变量)

1.2、数值型数据

①连续的数值型

②离散的数值型

2、函数式和面向对象式的绘图方法

2.1、首先考虑pyplot风格

3、统计图形

3.1、散点图

散点图是单变量数据最简单的展示方法,只要绘制出每个单独的数据点即可,

1import numpy as np

2import matplotlib.pyplot as plt

3import pandas as pd

4import scipy.stats as stats

5import seaborn as sns

6

7#生成数据

8x=np.random.randn(500)

9

10#绘图命令

11plt.plot(x,'.')

12plt.show()

3.2、直方图

直方图提供了一个数据分布的一个很好的概览,如果你除以总的数据点个数,即可得到相对频率的直方图,如果你是每个区间的顶部中间点连接起来,你会得到一个相对频率的多边形。

1import numpy as np

2import matplotlib.pyplot as plt

3import pandas as pd

4import scipy.stats as stats

5import seaborn as sns

6

7x=np.random.randn(500)

8plt.hist(x,bins=25)

9plt.show()

3.3、核密度(KDE)估计图

直方图有一个缺点就是它不是连续的,并且它的形状严格取决于区间的宽度,为了获得平滑的概率密度,也就是说描述一个事件在给定区间内被发现的可能性,我们就可以使用核密度估计的方法,因此,正态分布被用作典型的核,核密度的宽度决定了平滑的程度。

1import numpy as np

2import matplotlib.pyplot as plt

3import pandas as pd

4import scipy.stats as stats

5import seaborn as sns

6

7x=[-2.1,-1.3,-0.4,1.9,5.1,6.2]

8sns.kdeplot(x)

9plt.show()

3.4、误差条图

在比较数值的度量的时候,误差条是展示均值和变异度的常用方法,值得注意的是,误差条图必须显式说明误差到底是标准差还是标准误。使用标准误有一个很好的特性,就是当基于标准误的两组误差条图之间有重叠时,我们就可以确定两组数据之间的均值没有统计学差异(p>0.05),反之则不一定成立。

1import numpy as np

2import matplotlib.pyplot as plt

3import pandas as pd

4import scipy.stats as stats

5import seaborn as sns

6

7index=np.arange(5)

8y=index**2

9errorBar=index/2

10plt.errorbar(index,y,yerr=errorBar,fmt='o',capsize=5,capthick=3)

11plt.show()

3.5、箱型图

箱型图经常在学术期刊中使用,用来表示两组或多组的数值,箱子的底部和顶上分别表示第一分位数和第三分位数,然而箱子内部中间的线则表示中位数,值得注意的是上下的须,存在着不同的习惯用法,最常见的是,下面的须表示在第一分位数外1.5×IQR(四分位距)范围内的最低值,然而上面的须表示在第三分位数外1.5×IQR(四分位数)范围内的最高值,离散值(在上下须之外)被单独绘制,另一个就是习惯用法,须表示整个数据的范围。

1import numpy as np

2import matplotlib.pyplot as plt

3import pandas as pd

4import scipy.stats as stats

5import seaborn as sns

6x = np.random.randn(1000)

7plt.boxplot(x,sym='*')

8plt.show()

3.6、小提琴图

箱型图可以和核密度估计图联合起来绘制,生成所谓的小提琴图,期中纵轴和箱型图一样,但是在水平方向上额外绘制了对称的核密度估计图。

1import numpy as np

2import matplotlib.pyplot as plt

3import pandas as pd

4import scipy.stats as stats

5import seaborn as sns

6

7nd=stats.norm

8data=nd.rvs(size=(100))

9

10nd2=stats.norm(loc=3 , scale=1.5)

11data2=nd.rvs(size=(100))

12

13df=pd.DataFrame({'girls':data,'boys':data2})

14sns.violinplot(df)

15plt.show()

3.7、分组的条形图

对于一些应用来说,pabdas的绘图功能可以使得生成有用的图形更容易,比如,分组的条形图。

1import numpy as np

2import matplotlib.pyplot as plt

3import pandas as pd

4import scipy.stats as stats

5import seaborn as sns

6

7df=pd.DataFrame(np.random.rand(10,4),

8 columns=['a','b','c','d'])

9df.plot(kind='bar',grid=False)

10plt.show()

3.8、饼图

1import seaborn as sns

2import matplotlib.pyplot as plt

3

4txtLables='cats','dogs','frogs','others'

5fractions=[45,30,15,10]

6offsets=(0,0.05,0,0)

7

8plt.pie(fractions,explode=offsets,labels=txtLables,

9 autopct='%1.1f%%',shadow=True,startangle=90,

10 colors=sns.color_palette('muted'))

11plt.axis('equal')

12plt.show()

3.9、3D图

3D图需要导入不同的模块,并且3D图的坐标轴需要显式声明。

1import numpy as np

2from matplotlib import cm

3import matplotlib.pyplot as plt

4from mpl_toolkits.mplot3d.axes3d import get_test_data

5

6fig=plt.figure(figsize=plt.figaspect(0.5))

7

8ax=fig.add_subplot(1,2,1,projection='3d')

9X=np.arange(-5,5,0.1)

10Y=np.arange(-5,5,0.1)

11X,Y=np.meshgrid(X,Y)

12

13R=np.sqrt(X**2 + Y**2)

14Z=np.sin(R)

15

16surf=ax.plot_surface(X,Y,Z,rstride=1,cstride=1,

17 cmap=cm.GnBu,linewidth=0,antialiased=False)

18ax.set_zlim3d(-1.01,1.01)

19fig.colorbar(surf,shrink=0.5,aspect=10)

20

21ax=fig.add_subplot(1,2,2,projection='3d')

22X,Y,Z=get_test_data(0.05)

23ax.plot_wireframe(X,Y,Z,rstride=10,cstride=10)

24plt.show()

你可能感兴趣的:(python统计数据)