python可视化学习(十八)直方密度曲线图

#直方密度曲线图
#就是直方图与密度图的结合,将两图放入到同一个图形,就可以分析出直方图与密度图传达的信息
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
#如果用jupyter notebook则需要这行代码让你的图像显示,如果是jupyterlab则不需要

plt.rcParams['font.sans-serif']=['Simhei'] #显示中文
plt.rcParams['axes.unicode_minus']=False   #显示负号
**sns.distplot()**
> 重要参数   
>> a:绘制图形的数据   
>> bins:直方图参数,把数据分成多少个箱子   
>> hist:控制直方图显示的参数(True/False,默认是True>> kde:控制密度曲线显示的参数(True/False,默认是True>> hist_kws:直方图控制参数  
>> kde_kws:密度图控制参数  
#绘制简单的直方图
#创建100个满足正态分布的数据
X = np.random.randn(100)
#绘制简单是直方图
sns.set_style("darkgrid") #s设立风格
sns.distplot(X
             ,bins=6
             #hist=False
             #kde=False
             ,hist_kws={'color':'g','histtype':'bar','alpha':0.4}
             ,kde_kws={'color':'r','linestyle':'-','linewidth':3,'alpha':0.7}
            )

plt.show()

在这里插入图片描述

条形图的种类有四种:  
- bar:简单的条形图(默认)
- barstacked:堆积条形图
- step:默认未填充的线图
- stepfilled:默认被填充的线图
##读取数据以及数据的探索
df = pd.read_csv('mpg_ggplot2.csv')
df.head()
df.shape
df.columns
name = ["汽车制造商","型号名称","发动机排量(L)","制造年份"
        ,"气缸数量","手动/自动","驱动类型","城市里程/加仑"
        ,"公路里程/加仑","汽油种类","车辆类型"]

在这里插入图片描述

#查看汽车的种类
df['class'].value_counts()

在这里插入图片描述

#提取suv类型车的城市里程
x1 = df.loc[df['class']=='suv','cty'].values
#绘制图形
sns.distplot(x1,label='suv');

在这里插入图片描述
在这里插入图片描述

#创建画布
plt.figure(figsize = (14,8),dpi = 60)

#对每一种类型的车进行绘图
for i in clas:
    sns.distplot(df.loc[df['class'] == i,'cty'].values,label=i
                 #,hist=False
                )

#添加装饰
plt.title('城市里程随车类型变化的分布图',fontsize=20)
plt.ylim(0,0.65)
plt.xlim(5,30)
plt.legend(fontsize=15);

在这里插入图片描述

如果分类特别多的话,各种图形的交错就会更加复杂,那这样的绘图就不是很合适了    
而实际应用中,我们也不会将特别多的种类放到一起进行比较    
通常来说,会选择几个比较重要的分类来进行对比
#提取出compact/suv/minivan这三种车的城市里程
compact = df.loc[df['class'] == 'compact', 'cty'].values
suv = df.loc[df['class'] == 'suv', 'cty'].values
minivan = df.loc[df['class'] == 'minivan', 'cty'].values

#创建画布
plt.figure(figsize = (14,8),dpi = 60)

#绘制图形
sns.distplot(compact,color='b',label='compact', hist_kws={'alpha':.4},kde_kws={'linewidth':3,'alpha':.7})
sns.distplot(suv,color='r',label='suv', hist_kws={'alpha':.4},kde_kws={'linewidth':3,'alpha':.7})
sns.distplot(minivan,color='g',label='minivan', hist_kws={'alpha':.4},kde_kws={'linewidth':3,'alpha':.7})

#装饰图形
plt.rcParams['font.sans-serif']=['Simhei'] #显示中文
plt.rcParams['axes.unicode_minus']=False   #显示负号
plt.title('compact/suv/minivan三种车的城市里程分布',fontsize=20)
plt.xlabel('城市里程(cty)',fontsize=15)
plt.xticks(fontsize=12)
plt.yticks(fontsize=12)
plt.legend(fontsize=15,frameon=False)

在这里插入图片描述

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值