Seaborn折线图:Python数据可视化与趋势分析

大家好!在本文中,我们将继续深入学习Seaborn,并重点探讨如何使用Seaborn绘制折线图。如果您对Seaborn热力图感兴趣,可以查阅我们之前的相关文章。


什么是折线图?使用Seaborn进行数据可视化

折线图是一种强大的数据可视化工具,它能够清晰地展示数据随时间或连续变量的变化趋势。通过Seaborn库,我们可以轻松地从数据集中预测结果,并分析数据的动态变化。

Seaborn折线图擅长表现连续值和分类值之间的关系,以连续数据点的形式直观呈现数据走势。

在本文中,我们将使用以下数据集来演示如何操作数据并生成折线图。请在继续阅读前,先查看下面的数据集快照。

在下面的数据集中,变量 ‘cyl’、’vs’、’am’、’gear’ 和 ‘carb’ 被视为分类变量,因为它们的所有数据值都属于特定的类别或值范围。

而数据集中其余的列则属于整数/连续变量,它们承载着离散的整数值。

输入的数据集:

MTCARS Dataset

绘制你的第一个Seaborn折线图

要开始使用折线图,我们首先需要将Seaborn库安装并导入到Python环境中。请使用以下命令进行安装:

语法:

pip install seaborn

安装完成后,将库导入到当前的工作环境:

语法:

import seaborn

在整个Seaborn系列教程中,我们将与Matplotlib库配合使用,以便更好地绘制和展示数据。


使用Seaborn创建单个折线图

我们可以提供离散值或使用完整数据集来创建Seaborn折线图。

语法:

seaborn.lineplot(x, y, data)
  • x: 用于X轴的数据变量
  • y: 用于Y轴的数据变量
  • data: 指向整个数据集或数据值的对象

示例1:使用随机数据创建Seaborn折线图。

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

Year = [2012, 2014, 2016, 2020, 2021, 2022, 2018]
Profit = [80, 75.8, 74, 65, 99.5, 19, 33.6]

data_plot = pd.DataFrame({"Year":Year, "Profit":Profit})

sns.lineplot(x = "Year", y = "Profit", data=data_plot)
plt.show()

在下面的折线图中,我们可以清晰地看到“年份”和“利润”这两个数据变量之间的线性关系。

结果:

LinePlot Example 1

示例2:使用数据集创建一条线图,展示数据列之间的关系。

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = pd.read_csv("C:/mtcars.csv")
info = data.iloc[1:20,:5]
sns.lineplot(x = "drat", y = "mpg",data=info)
sns.set(style='dark')
plt.show()

输入数据集:

Seaborn折线图输入数据集

结果:

折线图示例2

多个Seaborn折线图

我们可以在同一空间或图表中创建多条线来可视化数据。通过使用相同或多个数据列/变量,我们可以同时描述它们之间的关系。

使用`hue`参数为多个数据点创建颜色色调

参数`hue`可用于对数据集中的不同变量进行分组,并有助于描绘x轴和y轴数据列与传递给该参数的列之间的关系。

语法:

seaborn.lineplot(x,y,data,hue)

请给我一杯水,好吗?

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = pd.read_csv("C:/mtcars.csv")
info = data.iloc[1:20,:5]
sns.lineplot(x = "drat", y = "mpg", data=info, hue="cyl")
plt.show()

如下图所示,以不同的颜色方案表示了‘drat’、‘mpg’和‘cyl’之间的关系。

输出:

多个Seaborn折线图

使用`style`参数来绘制不同类型的线条。

这是文章《Seaborn折线图的数据可视化》的第3部分(共5部分)。

内容片段: 我们可以将style参数设置为我们想要在x轴和y轴上显示的值,并且可以指定不同的线条结构:虚线、点线(标记)等。

句法:

seaborn.lineplot(x, y, data, style)

例子2:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = pd.read_csv("C:/mtcars.csv")
info = data.iloc[1:20,:5]
sns.lineplot(x = "drat", y = "mpg", data=info, hue="cyl", style="cyl")
plt.show()

如图所示,通过不同的线条结构,清晰地展示了散点图中“cyl”数值与“mpg”和“drat”的关系,其中包括实线、虚线和标记等不同的线条形式。

使用style参数的折线图

使用Seaborn中的size参数绘制多个折线图

我们甚至可以使用seaborn.lineplot()函数的size参数来表示多个数据变量之间的关系,并使用不同大小的线来绘制。因此,它可以作为一个分组变量,根据数据的大小来选择不同的线条粗细。

句法:

seaborn.lineplot(x, y, data, size)

例子3:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = pd.read_csv("C:/mtcars.csv")
info = data.iloc[1:20,]
sns.lineplot(x = "drat", y = "mpg", data=info, hue="gear",style="gear",size="gear")
plt.show()

输入数据集:

多折线图数据集
使用size参数的折线图


使用不同颜色调色板绘制Seaborn折线图

Seaborn的色图和调色板定义了可视化模型的颜色范围。参数“palette”以及“hue”可用于确定数据变量的颜色编码方案。

查看更多调色板,请参考以下链接:调色板

语法:

seaborn.lineplot(x, y, data, hue, palette)

示例:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
 
data = pd.read_csv("C:/mtcars.csv")
info = data.iloc[1:20,]
sns.lineplot(x = "drat", y = "mpg", data=info, hue="gear", palette = "Set1")
plt.show()

输出:

使用调色板的折线图


给Seaborn折线图添加误差线

可以使用折线图来定义置信水平/区间,通过 err_style 参数来描绘误差率。

语法:

seaborn.lineplot(x, y, data, err_style="bars")

示例:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = pd.read_csv("C:/mtcars.csv")
info = data.iloc[1:20,]
sns.lineplot(x = "cyl", y = "mpg", data=info, err_style="bars")
plt.show()

产出:

带误差线的折线图


使用seaborn.set()函数设置不同样式

5. 使用 `seaborn.set()` 函数设置图表样式

Python中的 `seaborn.set()` 函数可以用于以不同的背景样式显示图表,从而提升视觉效果。

语法:

seaborn.set(style)

请注意,`seaborn.set()` 函数应在绘制图表之前调用,以确保样式设置生效。

示例代码:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = pd.read_csv("C:/mtcars.csv")
info = data.iloc[1:20,]

sns.set(style='darkgrid') # 设置图表背景样式为 'darkgrid'
sns.lineplot(x = "cyl", y = "mpg",data=info,hue="gear")
plt.show()

输出:

使用 set() 函数绘制的折线图

总结

至此,我们已经深入理解了Seaborn折线图的绘制方法及其各种变化和高级用法。希望本文能帮助您更好地进行数据可视化。

我强烈建议读者们通读Python Matplotlib教程,以更好地理解折线图的使用方法和更多自定义选项。


参考文献

bannerAds