数据分析入门系列教程-常用图表

简介: 数据分析入门系列教程-常用图表

今天我们来学习下数据可视化,其实在前面的章节中,我们也接触到了一些数据可视化的知识,在分析数据集的时候,有效的可视化图表,可以帮助我们更好的了解数据。

常用的可视化图表

我们常用的图表其实也有很多,比如说文本表格,条形图,饼图等等。下面我就来简单介绍10种常见的图表

散点图

散点图一般是两个变量的二维图表,很适合展示两个变量之间的关系。当然也有三维散点图,不过使用的并不是很多

折线图

折线图可以很好的呈现数据随着时间迁移的变化趋势

直方图

直方图把横坐标等分成一定数量的区间,然后再每个区间内用矩形条展示该区间内的数值,可以很好的查看数据的分布情况

条形图

条形图可以查看数据中不同类别之间的分布请求

盒式图

是由五个数值组成:最大值(max)、最小值(min)、中位数(median)和上下四分位数(Q3,Q1),可以帮助我们分析数据的差异性、离散程度和异常值等信息

饼图

饼图可以很好的呈现每类数据所占总数据的比例情况

热力图

热力图是把数据用矩阵表示的形式,不同数据颜色不同,可以通过颜色直观的判断某个位置上的数值情况

雷达图

可以很好的显示一对多的关系,比如王者荣耀中的对局信息,就是雷达图

地理图表

对于按照不同地理位置区分的数据,使用地理图表可以很直观的呈现数据信息

词云图

词云图是非常好的可视化图表,在分析评论等场景非常常见

视化图表分类

其实,我们也可以根据数据之间的关系,把可视化图表分成如下几类

  1. 联系

查看多个变量之间的关系,例如:散点图,雷达图

  1. 比较

比较数据间各类别的关系,例如:条形图

  1. 趋势

展示数据随时间的变化趋势,例如:折线图

  1. 构成

各部分占总体的百分比,例如:饼图

  1. 分布

关注变量的分布情况,例如:直方图

下面有两张图片,很好的概括了不同情况下,该如何选择合适的图表

图片

在以后的工作中,如果遇到可视化工作,又不太确定如何更好的呈现数据,可以来看看上面的图片,也许能找到灵感。

十大图表实例

下面我们就来逐一完成上面的十个图表,看看 Python 带给你的视觉体验。

我们会分别使用 Matplotlib、Seaborn 和 Pyecharts 来完成作图,需要提前下载好对应的库

pip install matplotlib
pip install seaborn
pip install pyecharts

我们会使用 seaborn 自带的数据集为例子,所以需要导入数据集

import matplotlib.pyplot as plt
import seaborn as sns
tips = sns.load_dataset("tips")
print(tips.head())
>>>
   total_bill   tip     sex smoker  day    time  size
0       16.99  1.01  Female     No  Sun  Dinner     2
1       10.34  1.66    Male     No  Sun  Dinner     3
2       21.01  3.50    Male     No  Sun  Dinner     3
3       23.68  3.31    Male     No  Sun  Dinner     2
4       24.59  3.61  Female     No  Sun  Dinner     4

散点图

matplotlib 实现散点图

matplotlib.pyplot.scatter(x, y, c=None, marker=None)

几个重要的参数

x,y:数值坐标

c:点的颜色

marker:标记的符号,可以选择“x”,“>” 或 “o”

seaborn 实现散点图

sns.scatterplot(x=None, y=None, hue=None, style=None, size=None, data=None)

x,y:传入的数据间 data 的列的名字

hue:按照列名分组,不同组展示不同颜色

style:按照列名分组,不同分组使用不同的 marker

size:按照列名分组,不同分组符号大小不同

data:传入的数据集

plt.scatter(tips['total_bill'], tips['tip'], c='#bcbd22', marker='x')
plt.show()
sns.scatterplot(x='total_bill', y='tip', hue='time', style='time', size='time', data=tips)
plt.show()

Matplotlib 绘制:

Seaborn 绘制:

两种作图整体分布式类似的,不过 Seaborn 作为 Matplotlib 的更高级 API 实现,可以更加方便的处理数据的分组展示等功能。

pycharts 实现散点图

pyecharts 是基于 echarts 的 Python 实现,同样拥有强大的功能,而且拥有完善的中文文档,这里就不再过多讲解 pyecharts 的用法了。

scatter = Scatter()
scatter.add_xaxis(tips['total_bill'])
scatter.add_yaxis("小费金额", tips['tip'])
scatter.set_global_opts(xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
                       yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
                        toolbox_opts=opts.ToolboxOpts(is_show=True)
                       )
scatter.render_notebook()  # 在 jupyter notebook 中展示
# scatter.render('scatter.html')  # 生成 HTML 文件,可以在浏览器中打开查看


折线图

matplotlib 实现折线图

matplotlib.pyplot.plot(x, y)

x,y:分别是横纵坐标,x 需要是按照大小排序的数组

seaborn 实现折线图

seaborn.lineplot(x=None, y=None, data=None)

关键的参数与散点图十分类似,这里不再赘述

tips_copy = tips.copy()
tips_copy.sort_values(by='total_bill', inplace=True)
plt.plot(tips_copy['total_bill'], tips_copy['tip'])
plt.show()
sns.lineplot(x="total_bill", y="tip", data=tips, )
plt.show()

Matplotlib 绘制:

Seaborn 绘制:

可以看到,使用 seaborn 库,x 轴上的元素会自动被排序

pyecharts 实现折线图

from pyecharts.charts import Line
line = Line()
line.add_xaxis(tips_copy['total_bill'])
line.add_yaxis("", tips_copy['tip'])
line.render_notebook()


直方图

matplotlib 实现直方图

matplotlib.pyplot.hist(x, bins=None)

x:要输入的一维数组

bins:是直方图中区域的数量

seaborn 实现直方图

seaborn.distplot(a, kde=True)

a:观测数据

kde:是否画估计曲线

import numpy as np
x = np.random.randn(100)
plt.hist(x, 10)
plt.show()
sns.distplot(x, 10)
plt.show()

Matplotlib 绘制:

相关文章
|
25天前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
【10月更文挑战第42天】本文是一篇技术性文章,旨在为初学者提供一份关于如何使用Python进行数据分析的入门指南。我们将从安装必要的工具开始,然后逐步介绍如何导入数据、处理数据、进行数据可视化以及建立预测模型。本文的目标是帮助读者理解数据分析的基本步骤和方法,并通过实际的代码示例来加深理解。
54 3
|
26天前
|
数据可视化 数据挖掘
R中单细胞RNA-seq数据分析教程 (3)
R中单细胞RNA-seq数据分析教程 (3)
31 3
R中单细胞RNA-seq数据分析教程 (3)
|
1月前
|
SQL 数据挖掘 Python
R中单细胞RNA-seq数据分析教程 (1)
R中单细胞RNA-seq数据分析教程 (1)
38 5
R中单细胞RNA-seq数据分析教程 (1)
|
1月前
|
机器学习/深度学习 数据挖掘
R中单细胞RNA-seq数据分析教程 (2)
R中单细胞RNA-seq数据分析教程 (2)
49 0
R中单细胞RNA-seq数据分析教程 (2)
|
1月前
|
数据采集 数据可视化 数据挖掘
深入浅出:使用Python进行数据分析的基础教程
【10月更文挑战第41天】本文旨在为初学者提供一个关于如何使用Python语言进行数据分析的入门指南。我们将通过实际案例,了解数据处理的基本步骤,包括数据的导入、清洗、处理、分析和可视化。文章将用浅显易懂的语言,带领读者一步步掌握数据分析师的基本功,并在文末附上完整的代码示例供参考和实践。
|
2月前
|
机器学习/深度学习 人工智能 搜索推荐
某A保险公司的 数据图表和数据分析
某A保险公司的 数据图表和数据分析
67 0
某A保险公司的 数据图表和数据分析
|
2月前
|
数据采集 机器学习/深度学习 数据可视化
深入浅出:用Python进行数据分析的入门指南
【10月更文挑战第21天】 在信息爆炸的时代,掌握数据分析技能就像拥有一把钥匙,能够解锁隐藏在庞大数据集背后的秘密。本文将引导你通过Python语言,学习如何从零开始进行数据分析。我们将一起探索数据的收集、处理、分析和可视化等步骤,并最终学会如何利用数据讲故事。无论你是编程新手还是希望提升数据分析能力的专业人士,这篇文章都将为你提供一条清晰的学习路径。
|
2月前
|
数据挖掘 索引 Python
Python数据分析篇--NumPy--入门
Python数据分析篇--NumPy--入门
42 0
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
Python中的简单数据分析:入门指南
【10月更文挑战第2天】Python中的简单数据分析:入门指南
44 0