数据可视化实例(十三): 发散型文本 (matplotlib,pandas)
偏差 (Deviation)
https://datawhalechina.github.io/pms50/#/chapter11/chapter11
发散型文本 (Diverging Texts)
如果您想根据单个指标查看项目的变化情况,并可视化此差异的顺序和数量,那么散型条形图 (Diverging Bars) 是一个很好的工具。 它有助于快速区分数据中组的性能,并且非常直观,并且可以立即传达这一点。
导入所需要的库
- import numpy as np # 导入numpy库
- import pandas as pd # 导入pandas库
- import matplotlib as mpl # 导入matplotlib库
- import matplotlib.pyplot as plt
- import seaborn as sns # 导入seaborn库
设定图像各种属性
- large = 22; med = 16; small = 12
- params = {'axes.titlesize': large, # 设置子图上的标题字体
- 'legend.fontsize': med, # 设置图例的字体
- 'figure.figsize': (16, 10), # 设置图像的画布
- 'axes.labelsize': med, # 设置标签的字体
- 'xtick.labelsize': med, # 设置x轴上的标尺的字体
- 'ytick.labelsize': med, # 设置整个画布的标题字体
- 'figure.titlesize': large}
- plt.rcParams.update(params) # 更新默认属性
- plt.style.use('seaborn-whitegrid') # 设定整体风格
- sns.set_style("white") # 设定整体背景风格
程序代码
# step1:导入数据
- df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mtcars.csv")
- x = df.loc[:, 'mpg'] # 获取mpg这一列数据
- # z-score 标准化(正太标准化):将数据按期属性(按列进行)减去其均值,并处以其方差。得到的结果是,对于每个属性/每列来说所有数据都聚集在0附近,方差为1。
- df['mpg_z'] = (x - x.mean()) / x.std()
- # 列表推导式
- # 小于0__红色,大于0__绿色
- df['colors'] = ['red' if x <0 else 'green' for x in df['mpg_z']] # 颜色标签
- df.sort_values('mpg_z', inplace = True) # 对'mpg_z这一列数据进行排序
- df.reset_index(inplace = True) # 对排序后的数据重置索引
# step2:绘制发散条形图
- # 画布
- plt.figure(figsize = (14, 10), # 画布尺寸_(14, 10)
- dpi = 80) # 分辨率__80
- # 发散型条形图
- plt.hlines(df.index, # 将y下标作为绘制直线的位置
- xmin = 0, # 每一行的开头
- xmax = df.mpg_z) # 每一行的结尾
- # 发散型文本图
- for x, y, text in zip(df.mpg_z, df.index, df.mpg_z): # 使用zip() 函数用于将可迭代的对象作为参数
- t = plt.text(x, # 文本位置的横坐标
- y, # 文本位置的纵坐标
- round(text, 2), # 对text保留2位小数(照指定的小数位数进行四舍五入运算的结果)
- horizontalalignment = 'right' if x<0 else 'left', # 水平对齐参数
- verticalalignment = 'center', # 垂直对齐参数
- fontdict = {'color':'red' if x<0 else 'green', 'size':14} ) # 用于覆盖默认文本属性的字典(添加颜色和尺寸)
# step3:装饰图像
- # y轴标签
- plt.yticks(df.index, # 放置刻度的位置列表
- df.cars, # 放置给定位置列表的标签列表
- fontsize = 12) # 字体尺寸
- # 设置图像标题
- plt.title('Diverging Text Bars of Car Mileage', # 图像标题名称
- fontdict={'size':20}) # 字体尺寸
- # 设置网格线
- plt.grid(linestyle = '--', # 网格线类型
- alpha = 0.5) # 网格线透明度
- # 设置当前x坐标轴的范围
- plt.xlim(-2.5,
- 2.5)
- plt.show() # 显示图像
数据可视化实例(十三): 发散型文本 (matplotlib,pandas)的更多相关文章
- 【Matplotlib】数据可视化实例分析
数据可视化实例分析 作者:白宁超 2017年7月19日09:09:07 摘要:数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息.但是,这并不就意味着数据可视化就一定因为要实现其功能用途而令 ...
- 数据可视化实例(十四):带标记的发散型棒棒糖图 (matplotlib,pandas)
偏差 (Deviation) 带标记的发散型棒棒糖图 (Diverging Lollipop Chart with Markers) 带标记的棒棒糖图通过强调您想要引起注意的任何重要数据点并在图表中适 ...
- seaborn 数据可视化(一)连续型变量可视化
一.综述 Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,图像也更加美观,本文基于seaborn官方API还有自己的一些理解. 1.1.样式控制: ...
- 数据可视化基础专题(四):Pandas基础(三) mysql导入与导出
转载(有添加.修改)作者:但盼风雨来_jc链接:https://www.jianshu.com/p/238a13995b2b來源:简书著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处 ...
- 数据可视化基础专题(八):Pandas基础(七) 数据清洗与预处理相关
1.数据概览 第一步当然是把缺失的数据找出来, Pandas 找缺失数据可以使用 info() 这个方法(这里选用的数据源还是前面一篇文章所使用的 Excel ,小编这里简单的随机删除掉几个数据) i ...
- 数据可视化实例(十二): 发散型条形图 (matplotlib,pandas)
https://datawhalechina.github.io/pms50/#/chapter10/chapter10 如果您想根据单个指标查看项目的变化情况,并可视化此差异的顺序和数量,那么散型条 ...
- Matplotlib数据可视化(3):文本与轴
在一幅图表中,文本.坐标轴和图像的是信息传递的核心,对着三者的设置是作图这最为关心的内容,在上一篇博客中虽然列举了一些设置方法,但没有进行深入介绍,本文以围绕如何对文本和坐标轴进行设置展开(对图像 ...
- 数据可视化实例(三): 散点图(pandas,matplotlib,numpy)
关联 (Correlation) 关联图表用于可视化2个或更多变量之间的关系. 也就是说,一个变量如何相对于另一个变化. 散点图(Scatter plot) 散点图是用于研究两个变量之间关系的经典的和 ...
- 数据可视化实例(十六):有序条形图(matplotlib,pandas)
排序 (Ranking) 棒棒糖图 (Lollipop Chart) 棒棒糖图表以一种视觉上令人愉悦的方式提供与有序条形图类似的目的. https://datawhalechina.github.io ...
随机推荐
- @atcoder - AGC026F@ Manju Game
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个含 N 个数的序列,Alice 与 Bob 在博弈.Al ...
- D2大全
年初看到cnblogs上有人说看这本旧书,自己也只是瞟了下,后来在看些OOP东西时,想想没事也看看老古董,于是网购了一本电子版可参考下,它们是怎么一步步来,还没来得及多看,贴图于此.
- 通过数据库客户端界面工具DBeaver连接Hive
前言 本文讲解如何通过数据库客户端界面工具DBeaver连接hive,并解决驱动下载不下来的问题. 1.为什么使用客户端界面工具 为什么使用客户端界面工具而不用命令行使用hive 通过界面工具查看分析 ...
- Thunk函数的使用
Thunk函数的使用 编译器的求值策略通常分为传值调用以及传名调用,Thunk函数是应用于编译器的传名调用实现,往往是将参数放到一个临时函数之中,再将这个临时函数传入函数体,这个临时函数就叫做Thun ...
- 1.WebPack概念
一.什么是WebPack 官方解释:本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构 ...
- Python分支结构与流程控制
Python分支结构与流程控制 分支结构 if 语句 分支结构在任何编程语言中都是至关重要的一环,它最主要的目的是让计算机拥有像人一样的思想,能在不同的情况下做出不同的应对方案,所以if语句不管是在什 ...
- 个人项目-Wc-Java
一.Github项目地址: https://github.com/Heiofungfming/xiaoming01 二.PSP表格 PSP2.1 任务内容 计划完成需要的时间(min) 实际完成需要的 ...
- 入门大数据---Hive的搭建
本博客主要介绍Hive和MySql的搭建: 学习视频一天就讲完了,我看完了自己搭建MySql遇到了一堆坑,然后花了快两天才解决完,终于把MySql搭建好了.然后又去搭建Hive,又遇到了很多坑,就这 ...
- MongoDB快速入门教程 (4.3)
4.3.Mongoose模块化 4.3.1.为什么要进行模块化拆分? 模块化拆分的目的是为了代码的复用,让整个项目的结构更加清晰,举个例子:当数据库中的集合变多的时候,例如有课程.订单.分类.教师等多 ...
- cbitmap 获取RGB
CBitMap的用法 MFC提供了位图处理的基础类CBitmap,可以完成位图(bmp图像)的创建.图像数据的获取等功能.虽然功能比较少,但是在对位图进行一些简单的处理时,CBitmap类还是可以 ...