#分布图,连续变量的分布图
#导入包
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
#matplottib inline
plt.rcParams['font.sans-serif']=['Simhei']#显示中文
plt.rcParams['axes.unicode_minus']=False #显示负号
#认识函数
plt.hist?
#导入绘图的数据集
df=pd.read_csv('mpg_ggplot2.csv')
df.head()

#数据进行处理
df_agg=df.loc[:,['displ','class']].groupby('class')
df_agg.head()


#提取出每一列车型的发动机排量
vals=[df0['displ'].values.tolist() for i ,df0 in df_agg]
vals

#绘制直方图
plt.hist(vals,30,stacked=True)

plt.figure(figsize=(16,8),dpi=60) #创建画布
n,bins,patches = plt.hist(vals,30,stacked=True) #绘制堆叠直方图#添加装饰
plt.title('Stacked Histogram of $displ$ colored by $class$',fontsize=22) #添加标题
plt.xlabel('displ',fontsize=15) #X轴的标题
plt.ylabel('Frequency',fontsize=15) #Y轴标题
plt.xticks([round(b,1) for b in bins[::3]],fontsize=12) #设定X轴的刻度标签
plt.yticks(fontsize=12) #设定Y轴刻度大小
plt.ylim(0,25)#设定Y轴刻度范围
plt.legend(np.unique(df['class']),frameon=False,fontsize=12);

#源码及其解读
# Prepare data
x_var = 'displ' #横坐标所需特征
groupby_var = 'class' #分类变量
df_agg = df.loc[:, [x_var, groupby_var]].groupby(groupby_var) #根据分类变量将所需数据分组
vals = [df[x_var].values.tolist() for i, df in df_agg] #提取出每一组中的数据# Draw
plt.figure(figsize=(16,9), dpi= 60)#创建画布并设定画布大小
#colors = [plt.cm.Spectral(i/float(len(vals)-1)) for i in range(len(vals))]  #生成颜色列表
colors = [plt.cm.Spectral(i/float(len(vals))) for i in range(len(vals))]
n, bins, patches = plt.hist(vals, 30, stacked=True, density=False, color=colors[:len(vals)]) #绘制直方图# Decoration
plt.legend({group:col for group, col in zip(np.unique(df[groupby_var]).tolist(), colors[:len(vals)])}) #添加图例
plt.title(f"Stacked Histogram of ${x_var}$ colored by ${groupby_var}$", fontsize=22) #添加标题
plt.xlabel(x_var)   #添加 X轴标题
plt.ylabel("Frequency")#添加 Y轴标题
plt.ylim(0, 25) #设定Y轴刻度范围
plt.xticks(ticks=bins[::3], labels=[round(b,1) for b in bins[::3]])#设定 X轴刻度
plt.show() #本地显示图形

plt.cm.Spectral(1) #RGBA色彩空间:红绿蓝+alpha
# import matplotlib.pyplot as plt# plt.rcParams['font.sans-serif']=['Simhei'] #显示中文
# plt.rcParams['axes.unicode_minus']=False   #显示负号
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   #显示负号
df=pd.read_csv('mpg_ggplot2.csv')
x_var = 'manufacturer'   #X轴特征
groupby_var = 'class'    #分类标签(颜色标签)
df_agg = df.loc[:, [x_var, groupby_var]].groupby(groupby_var) #根据颜色标签将X轴特征分组
vals = [df[x_var].values.tolist() for i, df in df_agg]  #提取出每组特征
# Draw
plt.figure(figsize=(14,8), dpi= 60) #创建画布
colors = [plt.cm.Spectral(i/float(len(vals)-1)) for i in range(len(vals))]  #创建颜色列表
n, bins, patches = plt.hist(vals, df[x_var].unique().__len__(), stacked=True, density=False, color=colors[:len(vals)]) #绘制堆叠直方图
#_len_返回的是长度
# Decoration
plt.legend({group:col for group, col in zip(np.unique(df[groupby_var]).tolist(), colors[:len(vals)])}) #添加图例
# plt.legend(np.unique(df[groupby_var]),frameon=False,fontsize=15)
plt.title(f"Stacked Histogram of ${x_var}$ colored by ${groupby_var}$", fontsize=22) #添加标题
plt.xlabel(x_var,fontsize=20) #设定X轴标签
plt.ylabel("Frequency",fontsize=20) #设定Y轴标签
plt.ylim(0, 40) #设定Y轴刻度范围
#plt.xticks(ticks=bins, labels=np.unique(df[x_var]).tolist(), rotation=90, horizontalalignment='left',fontsize=16) #设定X轴刻度标签
plt.yticks(fontsize=16)#设定Y轴刻度字体大小
plt.show() #本地显示

python可视化学习(十六)分布图-连续变量的分布图相关推荐

  1. Python的学习(十六):对文件的操作

    Python的学习(十六):对文件的操作 编码格式的介绍 Python中的解释器使用的是Unicode(内存) .py文件在磁盘上使用UTF-8存储(外存) 如何修改文件格式?不写的话默认为UTF-8 ...

  2. PyTorch框架学习十六——正则化与Dropout

    PyTorch框架学习十六--正则化与Dropout 一.泛化误差 二.L2正则化与权值衰减 三.正则化之Dropout 补充: 这次笔记主要关注防止模型过拟合的两种方法:正则化与Dropout. 一 ...

  3. OpenCV与图像处理学习十六——模板匹配

    OpenCV与图像处理学习十六--模板匹配 一.模板匹配介绍 二.代码应用 一.模板匹配介绍 模板匹配是一种最原始.最基本的模式识别方法,研究某一特定目标的图像位于图像的什么地方,进而对图像进行定位. ...

  4. Python深度学习十大核心算法!

    深度学习已经成为了一种热门的技术,它的应用领域正在不断扩大.在深度学习中,有一些核心的算法是非常重要的,这些算法为深度学习的应用提供了强大的基础.在本文中,我们将介绍基于Python深度学习的十大核心 ...

  5. Python深度学习篇六《深度学习用于文本和序列》

    前言 前期回顾: Python深度学习篇五<深度学习用于计算机视觉> 上面这篇里面写了计算机视觉相关. 卷积神经网络是解决视觉分类问题的最佳工具. 卷积神经网络通过学习模块化模式和概念的层 ...

  6. 强化学习(十六) 深度确定性策略梯度(DDPG)

    在强化学习(十五) A3C中,我们讨论了使用多线程的方法来解决Actor-Critic难收敛的问题,今天我们不使用多线程,而是使用和DDQN类似的方法:即经验回放和双网络的方法来改进Actor-Cri ...

  7. python dlib学习(六):训练模型

    前言 前面的博客都是使用dlib官方提供的训练好的模型,进行目标识别. - python dlib学习(一):人脸检测 - python dlib学习(二):人脸特征点标定 - python dlib ...

  8. python应用学习(六)——tkinter制作连连看小游戏

    python 制作连连看小游戏 前言 一.准备 二.游戏简单介绍 1.游戏规则 2.游戏设计所需的图片库: 三.游戏设计 I.创建Point点类 II.定义函数 III.游戏的主函数逻辑 IV.完整代 ...

  9. python数据分析及可视化(十六)金融量化(金融工具、金融分析、Tushare安装使用、双均线分析)

    金融介绍 金融就是对现有资源进行重新整合之后,实现价值和利润的等效流通. 比如小明想把手里的资金投资给小李,而小李有好的增值项目但是缺少资金,如果小李的项目创业成功,小明的资金就会增长. 金融工具 在 ...

最新文章

  1. 吃糖学知识?通过舌头传感器,让视障人群“看见”形状
  2. will not add file alias already exists in index(git上传代码出错)
  3. 迈入大数据时代 12项实名制助推平安建设精细化
  4. cmd小游戏编程100例_学宏程序编程,这些知识必不可少!
  5. [19/04/11-星期四] 多线程_并发协作(生产者/消费者模式_2种解决方案(管程法和信号灯法))...
  6. .Net Core 全局配置读取管理方法 ConfigurationManager
  7. php入口函数,php 常用的系统函数
  8. 利用丁香园数据生成疫情分布地图(R语言)| 博文精选
  9. .NET中多线程调试的一个办法
  10. CF GYM 100703G Game of numbers
  11. 小米集团公布2019年财报:全年总收入突破2000亿!
  12. linux怎么重新编译c文件,linux编译c文件
  13. 这篇 CPU Cache,估计也没人看
  14. 坚果pro android版本号,锤子手机/坚果U3-Pro-SE/坚果Pro2特别版-LOS-安卓9.0.0-稳定版Stable3.0-来去电归属-农历等-本地化增强...
  15. Android 水滴下落效果View
  16. re学习笔记(65)BUUCTF - re - [GKCTF2020]Chellys identity
  17. 强化学习的方法总结与分类
  18. 大城市灯红酒绿,海伦司靠一杯酒如何建起护城河?
  19. pyCharm最新2018激活码
  20. 数图互通高校房产管理——房屋模拟分配建设

热门文章

  1. JS创建数组的三种方法
  2. python程序怎么保存到u盘_Python 骚操作,自动拷贝U盘
  3. spring transactional
  4. 利用PyQt5制作简易二维码生成器
  5. 华为数通笔记-路由基础
  6. vscode翻译插件、翻译变量、划词翻译、中译英(提高生产效率)
  7. mysql批量删除数据sql语句_mysql批量删除数据sql语句详解
  8. C语言的数组与子函数
  9. 未分配磁盘无法新建卷也无法扩展卷
  10. 营养学家推荐多吃14种超级食物