数据可视化实例(七): 计数图(matplotlib,pandas)
https://datawhalechina.github.io/pms50/#/chapter5/chapter5
计数图 (Counts Plot)
避免点重叠问题的另一个选择是增加点的大小,这取决于该点中有多少点。 因此,点的大小越大,其周围的点的集中度越高。
导入所需要的库
import numpy as np
# 导入pandas库
import pandas as pd
# 导入matplotlib库
import matplotlib as mpl
import matplotlib.pyplot as plt
# 导入seaborn库
import seaborn as sns
# 在jupyter notebook显示图像
%matplotlib inline
设定图像各种属性
large = 22; med = 16; small = 12
# 设置子图上的标题字体
params = {'axes.titlesize': large,
# 设置图例的字体
'legend.fontsize': med,
# 设置图像的画布
'figure.figsize': (16, 10),
# 设置标签的字体
'axes.labelsize': med,
# 设置x轴上的标尺的字体
'xtick.labelsize': med,
# 设置整个画布的标题字体
'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://raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv")
# groupby__可对具有相同'hwy','cty'进行分组
# size__返回元素的数量
# reset_index__重新设置连续的行索引index
# name_计数的列名
df_counts = df.groupby(['hwy', 'cty']).size().reset_index(name = 'counts')
# step2:绘画 Stripplot
# 设置画布
fig, ax = plt.subplots(figsize = (12, 8), dpi = 80)
# 横坐标
sns.stripplot(df_counts.cty,
# 纵坐标
df_counts.hwy,
# 尺寸
size = df_counts.counts * 2,
# 子图
ax = ax)
# step3:装饰
# 添加标题
plt.title('Counts Plot - Size of circle is bigger as more points overlap', fontsize=22)
# 显示图像
plt.show()

seaborn.stripplot(x=None, y=None, hue=None,
data=None, order=None, hue_order=None, jitter=True, dodge=False,
orient=None, color=None, palette=None, size=5, edgecolor='gray', linewidth=0, ax=None, **kwargs)
绘制一个散点图,其中一个变量是分类。
条形图可以单独绘制,但如果您想要显示所有观察结果以及底层分布的某些表示,它也是一个盒子或小提琴图的良好补充。
输入数据可以以多种格式传递,包括:
- 表示为列表,numpy数组或pandas Series对象的数据向量直接传递给
x,y和hue参数 - 在这种情况下,
x,y和hue变量将决定数据的绘制方式。 - “wide-form” DataFrame, 用于绘制每个数字列。
- 一个数组或向量列表。
在大多数情况下,可以使用numpy或Python对象,但最好使用pandas对象,因为关联的名称将用于注释轴。另外,您可以使用分组变量的分类类型来控制绘图元素的顺序。
此函数始终将其中一个变量视为分类,并在相关轴上的序数位置(0,1,... n)处绘制数据,即使数据具有数字或日期类型也是如此。
有关更多信息,请参阅教程。
参数:x, y, hue: 数据或矢量数据中的变量名称,可选
用于绘制长格式数据的输入。查看解释示例。
data:DataFrame, 数组, 数组列表, 可选
用于绘图的数据集。如果
x和y不存在,则将其解释为宽格式。否则预计它将是长格式的。
order, hue_order:字符串列表,可选
命令绘制分类级别,否则从数据对象推断级别。
jitter:float, True/1 是特殊的,可选
要应用的抖动量(仅沿分类轴)。 当您有许多点并且它们重叠时,这可能很有用,因此更容易看到分布。您可以指定抖动量(均匀随机变量支持的宽度的一半),或者仅使用
True作为良好的默认值
dodge:bool, 可选
使用
hue嵌套时,将其设置为True将沿着分类轴分离不同色调级别的条带。否则,每个级别的点将相互叠加。
orient:“v” | “h”, 可选
图的方向(垂直或水平)。这通常是从输入变量的dtype推断出来的,但可用于指定“分类”变量何时是数字或何时绘制宽格式数据。
color:matplotlib颜色,可选
所有元素的颜色,或渐变调色板的种子。
palette:调色板名称,列表或字典,可选
用于色调变量的不同级别的颜色。应该是
color_palette(), 可以解释的东西,或者是将色调级别映射到matplotlib颜色的字典。
size:float, 可选
标记的直径,以磅为单位。(虽然
plt.scatter用于绘制点,但这里的size参数采用“普通”标记大小而不是大小^ 2,如plt.scatter。
edgecolor:matplotlib颜色,“灰色”是特殊的,可选的
ax:matplotlib轴,可选
返回Axes对象,并在其上绘制绘图。
返回值:ax:matplotlib轴
返回Axes对象,并在其上绘制绘图。
也可参看
分类散点图,其中点不重叠。可以与其他图一起使用来显示每个观察结果。带有类似API的传统盒须图。箱形图和核密度估计的组合。
https://www.cntofu.com/book/172/docs/14.md
数据可视化实例(七): 计数图(matplotlib,pandas)的更多相关文章
- 【Matplotlib】数据可视化实例分析
数据可视化实例分析 作者:白宁超 2017年7月19日09:09:07 摘要:数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息.但是,这并不就意味着数据可视化就一定因为要实现其功能用途而令 ...
- 数据可视化实例(十四):面积图 (matplotlib,pandas)
偏差 (Deviation) 面积图 (Area Chart) 通过对轴和线之间的区域进行着色,面积图不仅强调峰和谷,而且还强调高点和低点的持续时间. 高点持续时间越长,线下面积越大. https:/ ...
- 数据可视化实例(三): 散点图(pandas,matplotlib,numpy)
关联 (Correlation) 关联图表用于可视化2个或更多变量之间的关系. 也就是说,一个变量如何相对于另一个变化. 散点图(Scatter plot) 散点图是用于研究两个变量之间关系的经典的和 ...
- seaborn线性关系数据可视化:时间线图|热图|结构化图表可视化
一.线性关系数据可视化lmplot( ) 表示对所统计的数据做散点图,并拟合一个一元线性回归关系. lmplot(x, y, data, hue=None, col=None, row=None, p ...
- 数据可视化实例(十四):带标记的发散型棒棒糖图 (matplotlib,pandas)
偏差 (Deviation) 带标记的发散型棒棒糖图 (Diverging Lollipop Chart with Markers) 带标记的棒棒糖图通过强调您想要引起注意的任何重要数据点并在图表中适 ...
- 数据可视化实例(十七):包点图 (matplotlib,pandas)
排序 (Ranking) 包点图 (Dot Plot) 包点图表传达了项目的排名顺序,并且由于它沿水平轴对齐,因此您可以更容易地看到点彼此之间的距离. https://datawhalechina.g ...
- 数据可视化实例(十一): 矩阵图(matplotlib,pandas)
矩阵图 https://datawhalechina.github.io/pms50/#/chapter9/chapter9 导入所需要的库 import numpy as np # 导入numpy库 ...
- 数据可视化实例(九): 边缘箱形图(matplotlib,pandas)
https://datawhalechina.github.io/pms50/#/chapter7/chapter7 边缘箱形图 (Marginal Boxplot) 边缘箱图与边缘直方图具有相似的用 ...
- 数据可视化实例(八): 边缘直方图(matplotlib,pandas)
https://datawhalechina.github.io/pms50/#/chapter6/chapter6 边缘直方图 (Marginal Histogram) 边缘直方图具有沿 X 和 Y ...
随机推荐
- TensorFlow从0到1之回归算法(11)
回归是数学建模.分类和预测中最古老但功能非常强大的工具之一.回归在工程.物理学.生物学.金融.社会科学等各个领域都有应用,是数据科学家常用的基本工具. 回归通常是机器学习中使用的第一个算法.通过学习因 ...
- Java8新特性之函数式接口
<Java 8 实战>学习笔记系列 定义 函数式接口只定义一个抽象方法,可以有多个默认方法 函数式接口的接口名上,会被@FunctionalInterface标注 作用 函数式接口的方法可 ...
- CKAD个人考试心得
先晒一波本人的CKA和CKAD证书! 如下正式分享CKAD心得: 考试相关准备: l 练习:https://github.com/dgkanatsios/CKAD-exercises: l 网络:必须 ...
- 安装mysql报错:遇到缺少vcruntime140_1.dll文件
把vcruntime140_1.dll文件放到System32 ,和System64就行 文件地址为:C:\Windows\System32 直接百度下载放进去就行
- Python初识类与对象
Python初识类与对象 类与对象 世界观角度分析类与对象 类是一个抽象的概念,而对象是一个实体的存在,对象由类创造而出,每个对象之间互相独立互不影响,一个对象可以同时拥有多个类的方法,实例化就是通过 ...
- 【JAVA8新的时间与日期 API】- 传统时间格式化的线程安全问题
Java8之前的日期和时间API,存在一些问题,最重要的就是线程安全的问题.这些问题都在Java8中的日期和时间API中得到了解决,而且Java8中的日期和时间API更加强大. 传统时间格式化的线程安 ...
- mybatis缓存之一级缓存(二)
这篇文章介绍下mybatis的一级缓存的生命周期 一级缓存的产生 一级缓存的产生,并不是看mappper的xml文件的select方法,看下面的例子 mapper.xml <select id= ...
- 动态追踪技术之SystemTap
SystemTap SystemTap是一个深入检查Linux系统活动的工具,使用该工具编写一些简单的代码就可以轻松的提取应用或内核的运行数据,以诊断复杂的性能或者功能问题.有了它,开发者不再需要重编 ...
- 苹果XR手机的音频体验测试总结
苹果XR手机的音频 苹果XR算是苹果手机历史上一个里程碑的型号了,是苹果憋了两年的大招,连苹果9的称号就不要了.直接是X.说明苹果对它给予的希望很大.作为一个音频算法工程师,一直想体验一下XR的音 ...
- 逻辑式编程语言极简实现(使用C#) - 1. 逻辑式编程语言介绍
相信很多朋友对于逻辑式编程语言,都有一种最熟悉的陌生人的感觉.一方面,平时在书籍.在资讯网站,偶尔能看到一些吹嘘逻辑式编程的话语.但另一方面,也没见过周围有人真正用到它(除了SQL). 遥记当时看&l ...