Matplotlib数据可视化进阶(四)

简介: 本文其实属于:Python的进阶之道【AIoT阶段一】的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍Matplotlib数据可视化进阶,读本文之前,如果没有 Matplotlib基础建议先看博客:Matplotlib数据可视化入门,Matplotlib数据可视化高级。

3.Seaborn

Seaborn是基于matplotlib的图形可视化python包。它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。

Seaborn是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。应该把Seaborn视 为matplotlib的补充,而不是替代物。


1.安装

如果你读过文章:matplotlib的安装教程以及简单调用,那么你只需要在命令行模式中输入:pip install seaborn即可进行安装,否则你也可以直接输入:pip install seaborn -i https://pypi.tuna.tsinghua.edu.cn/simple


进入命令行模式:Windows系统:按下键盘上的 Windows+R,输入 cmd 后即可进入


如果你读过文章:最详细的Anaconda Installers 的安装【numpy,jupyter】(图+文),那么你无序再安装Seaborn,安装Anaconda 的时候已经安装好了Seaborn

image.png

出现上图所示就是已经安装过的意思,我们可以打开 jupyter 运行如下代码,看是否报错:

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

不报错即为安装成功,那么接下来,就让我来介绍seaborn

2.快速上手

2.1 模式设置

import seaborn as sns 
sns.set(style = 'darkgrid',context = 'talk',font = 'STKaiti')

style设置,修改主题风格,属性如下:

style 效果
darkgrid 黑色网格(默认)
whitegrid 白色网格
dark 黑色背景
white 白色背景
ticks 四周有刻度线的白背景

context设置,修改大小,属性如下:

context 效果
paper 越来越大越来越粗
notebook(默认) 越来越大越来越粗
talk 越来越大越来越粗
poster 越来越大越来越粗

2.2 线形图

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
sns.set(style = 'dark',context = 'poster',font = 'STKaiti') # 设置样式
plt.figure(figsize = (9, 6))
x = np.linspace(0, 2 * np.pi, 20)
y = np.sin(x)
sns.lineplot(x = x, y = y, color = 'green', ls = '--')
sns.lineplot(x = x, y = np.cos(x), color = 'red',ls = '-.')

32.png

3.各种图形绘制

首先我们需要下载几个csv 文件:

链接: https://pan.baidu.com/s/12CkTweXPT-El4z2M93HltQ?pwd=vaks

提取码: vaks

下载完成之后,把该文件和我们的代码放到同一个文件夹下,这一操作我们在之前的博客中已经反复说到,这里就不再进行演示

3.1 调色板

参数palette(调色板),用于调整颜色,系统默认提供了六种选择:deep,muted,bright,pastel,dark,colorblind

参数palette调色板,可以有更多的颜色选择,Matplotlib为我们提供了多达178种,这足够绘图用,可以通过代码print(plt.colormaps())查看选择

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
print(plt.colormaps())

image.png

3.2 线形图

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
# 设置样式
sns.set(style = 'dark', context = 'notebook', font = 'STKaiti')
plt.figure(figsize = (9, 6))
# fmri 这一核磁共振数据
fmri = pd.read_csv('./fmri.csv') 
ax = sns.lineplot(x = 'timepoint',y = 'signal',
                  hue = 'event',     # 根据 event 进行分类绘制
                  style = 'event',   # 根据 event 属性分类指定样式
                  # 如图自动分配成了实现和虚线,●和×
                  data = fmri,
                  palette = 'deep',  # 画板、颜色
                  markers = True,
                  markersize = 10)
plt.xlabel('时间节点',fontsize = 30)

33.png

3.3 散点图

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
data = pd.read_csv('./tips.csv') # 小费
plt.figure(figsize = (9, 6))
sns.set(style = 'darkgrid', context = 'talk')
# 散点图
fig = sns.scatterplot(x = 'total_bill', y = 'tip',
hue = 'time', data = data,
palette = 'autumn', s = 100)

34.png

3.4 柱状图

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
plt.figure(figsize = (9, 6))
sns.set(style = 'whitegrid')
tips = pd.read_csv('./tips.csv') # 小费
ax = sns.barplot(x = "day", y = "total_bill",
                 data = tips,hue = 'sex',
                 palette = 'colorblind',
                 capsize = 0.2)

35.png

3.5 箱式图

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
sns.set(style = 'ticks')
tips = pd.read_csv('./tips.csv')
ax = sns.boxplot(x = "day", y = "total_bill", data = tips, palette = 'colorblind')

image.png

3.6 直方图

import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
sns.set(style = 'dark')
x = np.random.randn(5000)
sns.histplot(x, kde = True)

image.png

import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
sns.set(style = 'darkgrid')
tips = pd.read_csv('./tips.csv')
sns.histplot(x = 'total_bill', data = tips, kde = True)

36.png

3.7 分类散点图

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
sns.set(style = 'darkgrid')
exercise = pd.read_csv('./exercise.csv')
sns.catplot(x = "time", y = "pulse", hue = "kind", data = exercise)

37.png

3.8 热力图


import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
plt.figure(figsize = (12, 9))
flights = pd.read_csv('./flights.csv')   # 飞行数据
# pivot() 实现了数据重塑,改变了DataFrame的形状
# month 作为行索引,year作为列索引,passengers作为数据
flights = flights.pivot("month", "year", "passengers") # 年,月,乘客
sns.heatmap(flights, annot = True,   # 画上数值
            fmt = 'd',         # 数值为整数
            cmap = 'RdBu_r',   # 设置颜色 
            linewidths = 0.5)  # 线宽为 0.5 


38.png

我们最后来说一下数据重塑,在本题的基础上,我们查看一下我们的flights 数据:

39.png

咋们再来重新加载一下数据,看看原始的 flights 数据:

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
flights = pd.read_csv('./flights.csv')
flights

40.png

不难看出,上述绘图过程中涉及到了数据重塑:代码:flights = flights.pivot("month", "year", "passengers")实现了数据的重塑,使得month 作为行索引,yerr 作为列索引,passengers 作为数据。



目录
相关文章
|
2月前
|
数据可视化 数据挖掘 开发者
Pandas数据可视化:matplotlib集成(df)
Pandas 是 Python 中强大的数据分析库,Matplotlib 是常用的绘图工具。两者结合可方便地进行数据可视化,帮助理解数据特征和趋势。本文从基础介绍如何在 Pandas 中集成 Matplotlib 绘制图表,如折线图、柱状图等,并深入探讨常见问题及解决方案,包括图表显示不完整、乱码、比例不合适、多子图布局混乱、动态更新图表等问题,提供实用技巧和代码示例。掌握这些方法后,你将能更高效地处理数据可视化任务。
59 9
|
3月前
|
移动开发 数据可视化 数据挖掘
利用Python实现数据可视化:以Matplotlib和Seaborn为例
【10月更文挑战第37天】本文旨在引导读者理解并掌握使用Python进行数据可视化的基本方法。通过深入浅出的介绍,我们将探索如何使用两个流行的库——Matplotlib和Seaborn,来创建引人入胜的图表。文章将通过具体示例展示如何从简单的图表开始,逐步过渡到更复杂的可视化技术,帮助初学者构建起强大的数据呈现能力。
|
4月前
|
数据可视化 定位技术 Python
Python数据可视化--Matplotlib--入门
Python数据可视化--Matplotlib--入门
42 0
|
4月前
|
数据可视化 数据挖掘 API
Python中的数据可视化利器:Matplotlib与Seaborn对比解析
在Python数据科学领域,数据可视化是一个重要环节。它不仅帮助我们理解数据,更能够让我们洞察数据背后的故事。本文将深入探讨两种广泛使用的数据可视化库——Matplotlib与Seaborn,通过对比它们的特点、优劣势以及适用场景,为读者提供一个清晰的选择指南。无论是初学者还是有经验的开发者,都能从中找到有价值的信息,提升自己的数据可视化技能。
234 3
|
5月前
|
数据可视化 数据挖掘 Linux
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
在数据科学领域,数据可视化是连接数据与洞察的桥梁,能让复杂的关系变得直观。本文通过实战案例,介绍Python数据分析师必备的Matplotlib与Seaborn两大可视化工具。首先,通过Matplotlib绘制基本折线图;接着,使用Seaborn绘制统计分布图;最后,结合两者在同一图表中展示数据分布与趋势,帮助你提升数据可视化技能,更好地讲述数据故事。
93 1
|
5月前
|
机器学习/深度学习 数据可视化 数据挖掘
数据可视化大不同!Python数据分析与机器学习中的Matplotlib、Seaborn应用新视角!
在数据科学与机器学习领域,数据可视化是理解数据和优化模型的关键。Python凭借其强大的可视化库Matplotlib和Seaborn成为首选语言。本文通过分析一份包含房屋面积、卧室数量等特征及售价的数据集,展示了如何使用Matplotlib绘制散点图,揭示房屋面积与售价的正相关关系;并利用Seaborn的pairplot探索多变量间的关系。在机器学习建模阶段,通过随机森林模型展示特征重要性的可视化,帮助优化模型。这两个库在数据分析与建模中展现出广泛的应用价值。
68 2
|
5月前
|
数据可视化 数据挖掘 开发者
数据可视化新纪元!Python + Matplotlib + Seaborn,让你的数据故事生动起来!
在这个数据可视化的新纪元,让我们充分发挥 Python 的优势,用精彩的图表讲述数据背后的故事,为决策提供有力的支持,为交流带来清晰的视角。
43 4
|
5月前
|
数据可视化 数据挖掘 API
使用Python进行数据可视化:探索Matplotlib和Seaborn库
【9月更文挑战第19天】在数据科学领域,将复杂的数据集转换成直观、易懂的图形是一项基本而关键的技能。本文旨在通过Python编程语言介绍两个强大的数据可视化库——Matplotlib和Seaborn,以及它们如何帮助数据分析师和研究人员揭示数据背后的故事。我们将从基础概念讲起,逐步深入到高级技巧,确保无论读者的背景如何,都能获得必要的知识和启发,以在自己的项目中实现有效的数据可视化。
|
5月前
|
数据可视化 数据挖掘 Python
惊呆了!Python数据分析师如何用Matplotlib、Seaborn秒变数据可视化大师?
在数据驱动时代,分析师们像侦探一样在数字海洋中寻找线索,揭示隐藏的故事。数据可视化则是他们的“魔法棒”,将复杂数据转化为直观图形。本文将带你探索Python数据分析师如何利用Matplotlib与Seaborn这两大神器,成为数据可视化大师。Matplotlib提供基础绘图功能,而Seaborn在此基础上增强了统计图表的绘制能力,两者结合使数据呈现更高效、美观。无论是折线图还是箱形图,这两个库都能助你一臂之力。
60 4
|
5月前
|
机器学习/深度学习 数据采集 监控
Pandas与Matplotlib:Python中的动态数据可视化
Pandas与Matplotlib:Python中的动态数据可视化