Python数据可视化之折线图
提示:前言
Python数据可视化之折线图
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- Python数据可视化之折线图
- 前言
- 一、导入包
- 二、选择数据集
- 三、折线图
- 四、图形的大小和图表的标题
- 五、绘制数据的一个子集
- 六、改变样式
前言
在本教程中,您将学习足够的 Python 来创建具有专业外观的折线图。 然后,在下面的练习中,您将运用新技能处理真实世界的数据集
提示:以下是本篇文章正文内容,下面案例可供参考
一、导入包
import pandas as pd
pd.plotting.register_matplotlib_converters()
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
print("Setup Complete")
二、选择数据集
本教程的数据集跟踪音乐流媒体服务 Spotify 上的全球每日流媒体。 我们专注于 2017 年和 2018 年的五首流行歌曲:
请注意,第一个出现的日期是 2017 年 1 月 6 日,对应于 Ed Sheeran 的“The Shape of You”的发行日期。 而且,使用该表,您可以看到“你的形状”在发布当天在全球播放了 12,287,078 次。 请注意,其他歌曲在第一行中有缺失值,因为它们是后来才发布的!
# Path of the file to read
spotify_filepath = "../input/spotify.csv"
# Read the file into a variable spotify_data
spotify_data = pd.read_csv(spotify_filepath, index_col="Date", parse_dates=True)
我们可以使用您在上一教程中学到的 head 命令打印数据集的前五行
# Print the first 5 rows of the data
spotify_data.head()
现在检查前五行是否与上面的数据集图像一致(从我们看到它在 Excel 中的样子开始)。空条目将显示为 NaN,它是“Not a Number”的缩写
我们还可以通过仅进行一个小更改(其中 .head() 变为 .tail())来查看数据的最后五行:
# Print the last five rows of the data
spotify_data.tail()
值得庆幸的是,一切看起来都不错,每首歌曲每天都有数百万的全球流媒体播放,我们可以继续绘制数据了!
三、折线图
现在数据集已经加载到笔记本中,我们只需要一行代码来制作折线图
# Line chart showing daily global streams of each song
sns.lineplot(data=spotify_data)
正如您在上面看到的,这行代码相对较短,主要有两个组成部分:
sns.lineplot 告诉笔记本我们要创建折线图。
您在本课程中学习的每个命令都将以 sns 开头,这表明该命令来自 seaborn 包。 例如,我们使用 sns.lineplot 来制作折线图。 很快,您就会了解到我们分别使用 sns.barplot 和 sns.heatmap 来制作条形图和热图。
data=spotify_data 选择将用于创建图表的数据。
请注意,在创建折线图时,您将始终使用相同的格式,并且随着新数据集的变化,唯一改变的是数据集的名称。 因此,例如,如果您正在使用名为 financial_data 的不同数据集,则代码行将如下所示:
sns.lineplot(data=financial_data)
四、图形的大小和图表的标题
有时我们想要修改其他细节,例如图形的大小和图表的标题。 这些选项中的每一个都可以使用一行代码轻松设置。
# Set the width and height of the figure
plt.figure(figsize=(14,6))
# Add title
plt.title("Daily Global Streams of Popular Songs in 2017-2018")
# Line chart showing daily global streams of each song
sns.lineplot(data=spotify_data)
第一行代码将图形的大小设置为 14 英寸(宽)乘 6 英寸(高)。 要设置任何图形的大小,您只需复制它出现的同一行代码。 然后,如果您想使用自定义尺寸,请将提供的值 14 和 6 更改为所需的宽度和高度。
第二行代码设置图形的标题。 请注意,标题必须始终用引号 (“…”) 括起来!
五、绘制数据的一个子集
到目前为止,您已经学习了如何为数据集中的每一列绘制一条线。 在本节中,您将学习如何绘制列的子集。
我们将从打印所有列的名称开始。 这是用一行代码完成的,只需换掉数据集的名称(在本例中为 spotify_data)即可适用于任何数据集。
list(spotify_data.columns)
在下一个代码单元格中,我们绘制了与数据集中前两列对应的线条。
# Set the width and height of the figure
plt.figure(figsize=(14,6))
# Add title
plt.title("Daily Global Streams of Popular Songs in 2017-2018")
# Line chart showing daily global streams of 'Shape of You'
sns.lineplot(data=spotify_data['Shape of You'], label="Shape of You")
# Line chart showing daily global streams of 'Despacito'
sns.lineplot(data=spotify_data['Despacito'], label="Despacito")
# Add label for horizontal axis
plt.xlabel("Date")
前两行代码设置了图形的标题和大小(看起来应该很眼熟!)。
接下来的两行分别在折线图中添加一条线。 例如,考虑第一个,它添加了“你的形状”这一行:
# Line chart showing daily global streams of 'Shape of You'
sns.lineplot(data=spotify_data['Shape of You'], label="Shape of You")
这条线看起来与我们在绘制数据集中的每一行时使用的代码非常相似,但它有几个关键的区别:
我们不设置 data=spotify_data,而是设置 data=spotify_data[‘Shape of You’]。 通常,为了仅绘制单个列,我们使用这种格式,将列名放在单引号中并将其括在方括号中。 (为确保您正确指定列名,您可以使用上面学到的命令打印所有列名的列表。)
我们还添加 label=“Shape of You” 使线条出现在图例中并设置其对应的标签。
最后一行代码修改水平轴(或 x 轴)的标签,其中所需标签放在引号 (“…”) 中。
六、改变样式
只需一行代码,我们就可以快速将图形的样式更改为不同的主题。
# Change the style of the figure to the "dark" theme
sns.set_style("dark")
# Line chart
plt.figure(figsize=(12,6))
sns.lineplot(data=spotify_data)
Seaborn 有五个不同的主题:
(1)“darkgrid”,
(2)“whitegrid”,
(3)“dark”,
(4)“white”,
(5)“ticks”,
你只需要使用类似的命令 到上面代码单元格中的那个(填充了所选主题)以更改它。
参考链接
https://www.kaggle.com/code/alexisbcook/line-charts