在 Matplotlib 绘图中使用 Pandas 数据框索引作为 X 轴

数据框索引是数据框中的一列,代表整个数据框。它可以在创建数据框时指定,甚至可以在分析后设置索引。

当我们谈论数据框的索引时,有必要了解什么是数据框。数据框是Pandas库的常见存储单元,类似于表。也就是说,它以行和列的形式存储数据。

数据框的索引可以是与数据相关的任何列。它也可以采取多种形式。索引可以是数值数据、字符串文字、日期时间实体等。

数据框的索引是其最重要的特征。我们可以选择最能描述数据框的列作为索引。如果索引选择正确,可能会帮助我们更好地理解数据框。如果我们了解数据框包含的内容,我们就可以可视化和操作数据。

说到可视化,Python 的 Matplotlib 库在执行数据可视化和操作任务方面非常有用。我们还可以借助该库可视化数据框。当我们尝试可视化数据框时,我们还可以在绘图时使用其索引作为 X 轴的值。

本文重点介绍数据框及其索引的关键概念,以及如何使用该索引作为绘制图表时 X 轴的值。

什么是数据框?

如上所述,数据帧是跨多行和多列存储数据的存储单元。它可以存储异构数据,这意味着一个数据帧包含多种类型的数据。虽然标题行包含字符串数据类型,但其中的元素可以是数字。

该 pd.DataFrame 方法用于从列表、字典和字典列表等数据结构返回数据帧。数据框还可以创建为 Excel 格式、CSV 格式等。

让我们看看如何从 CSV 文件获取数据框。为此,我们需要将 CSV 数据集下载到我们的环境中。

阅读这篇文章,了解如何在一个数据框中连接多个 CSV 文件。

我们要使用的数据集是一部流行的动漫系列——海贼王。该数据集具有以下列 – 剧集名称、剧集评级、剧集排名、开始年份等。

让我们看看如何从该数据集中创建一个数据框。

1
2
3
4
import pandas as pd
data=pd.read_csv('/ONE PIECE.csv')
df=pd.DataFrame(data)
df

首先,我们需要导入Pandas库来创建数据框。接下来,我们将借助read_csvPandas 库的方法读取下载的 CSV 数据集,并将其存储在名为 data 的变量中。

该数据作为参数传递给另一个方法pd.DataFrame以创建数据框。最后一行打印数据帧。

数据框

正如您所看到的,数据框很大,我们不需要整个数据框来分析它。我们还可以打印数据框的前五行或后五行来进行分析。

让我们看看如何显示数据框中选定的行。

df.head()

数据帧的 head 属性打印数据帧的前五行。类似地,tail 属性打印数据帧的最后五行。

数据框的前五行

如何设置数据框的索引?

有几种方法可以将数据框的列命名为其索引。让我们来看看这些方法。

阅读这篇文章以了解如何获取数据框的索引。

使用值列表作为索引

对于数据框,我们可以创建一个元素列表用作索引列。

1
2
3
4
5
6
import pandas as pd
groc = {'Food': ['Tacos','Mac and Cheese','Carbonara','Lasagna','Croissant'],
        'Calories': [226,164,574,135,406]}
index1 = ['Food_A','Food_B','Food_C','Food_D','Food_E']
df = pd.DataFrame(groc, index=index1)
print(df)

首先,我们将 Pandas 库导入为 pd。然后,我们创建了一个名为 groc 的字典,其中分别包含一些食物及其卡路里。

接下来,我们创建了一个名为index1的列表,其中包含Food_A到Food_E形式的元素。该列表用作数据框的索引。

上面的字典被渲染为一个数据框,其中index1作为数据框的索引。最后一行打印数据框。

将列表设置为索引

使用设置索引方法

在上一个示例中,我们了解了如何向数据框中不包含索引列的数据框添加索引。pandas库的方法set_index用于将数据框中存在的列设置为索引。

set_index方法可以采用单个列或多个现有列来设置索引。

1
2
3
4
5
6
import pandas as pd
sal = {'year': [2016,2017,2018, 2019, 2020, 2021,2022,2023],
        'sales': [120,100, 150, 200, 250,220,270,300]}
df = pd.DataFrame(sal)
df.set_index('year', inplace=True)
print(df)

像往常一样,我们需要首先导入 Pandas 库。接下来,创建一个名为 sal 的字典,其中包含公司逐年销售额的详细信息。

然后使用该字典创建一个名为 df 的数据框。接下来,使用set_index方法将数据框的年份列设置为索引。

最后,我们打印数据框。

使用集合索引方法

如何使用索引作为X轴的值?

Matplotlib 是一个著名的用于数据可视化的库。我们还可以使用这个库可视化和分析数据框。

现在,当我们绘制数据框时,我们可以使用它的索引作为 X 轴的值。

阅读本文以了解 matplotlib 库。

使用 plt.plot 将索引设置为 X 轴值

创建数据框并设置索引后,我们可以绘制图表并使用索引列来命名 X 轴值。

1
2
3
4
5
6
7
8
9
10
11
import pandas as pd
import matplotlib.pyplot as plt
sal = {'year': [2016,2017,2018, 2019, 2020, 2021,2022,2023],
        'sales': [120,100, 150, 200, 250,220,270,300]}
df = pd.DataFrame(sal)
df.set_index('year', inplace=True)
plt.plot(df.index, df['sales'])
plt.xlabel('Year')
plt.ylabel('Sales')
plt.title('Year-wise sales')
plt.show()

我们采用了相同的销售数据并将索引指定为列year接下来,我们使用plotmatplotlib库的方法。传递给该方法的参数是数据框df的索引,y轴指定为数据框的销售列。

X 轴的标签是 Year,Y 轴的标签是 Sles。该图的标题为“年度销售额”。

然后。库的 show() 方法用于显示图形。

使用绘图方法

使用数据frame.plot方法

与 matplotlib 库的绘图函数类似,Pandas 库也有一个名为 的属性df.plot,用于可视化数据框或序列。

让我们看看如何使用这个函数来绘制数据框。

1
2
3
4
5
6
7
8
9
10
11
import pandas as pd
import matplotlib.pyplot as plt
groc = {'Food': ['Tacos','Mac and Cheese','Carbonara','Lasagna','Croissant'],
        'Calories': [226,164,574,135,406]}
df = pd.DataFrame(groc)
df.set_index('Food', inplace=True)
df.plot(kind='line', marker='D')
plt.title('Different foods and their calories')
plt.xlabel('Food Item')
plt.ylabel('Calories')
plt.show()

我们在这个例子中使用了杂货数据框。该数据框的索引设置为其 Food 列。

df.plot 方法用于在线图中绘制 X 轴上的“食物”列和 Y 轴上的“卡路里”列。标记组件用于设计标记样式。在本例中,D 代表钻石。

在接下来的三行中,我们指定 X 轴和 Y 轴的标题和标签名称

show 方法用于显示图形。

使用 Df 图

使用 Xticks 设置索引

matplotlib 库的 xticks 方法用于轻松解释图形或绘图的 X 轴。它们还有助于理解情节的规模。

1
2
3
4
5
6
7
8
9
10
11
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({'A': [1, 2, 3, 4, 5],
                   'B': [6, 7, 8, 9, 10]},
                  index=pd.date_range('2022-03-04', '2022-03-08'))
df.plot(y=['A', 'B'], kind='line', marker='x')
plt.xticks(ticks=df.index, labels=df.index.strftime('%Y-%m-%d'))
plt.title('Using xticks')
plt.xlabel('Date')
plt.ylabel('Value')
plt.show()

在此代码中,我们将创建一个随机值数据框,其中指定了 2022 年 3 月 3 日至 2022 年 3 月 8 日之间的日期索引。

然后。df.plot 用于在 y 轴上绘制数据框的两列,并将 x 轴的标签指定为数据框的索引。使用该函数将日期转换为兼容的格式strfttime

图表的标题为“使用 xticks”,x 轴和 y 轴的标签分别为“日期”和“值”。

最后,使用show方法来显示图形。

使用Xticks设置索引

这是一个包装!

最后,我们讨论了什么是数据框以及如何从 CSV 文件创建数据框。该 CSV 文件是一个动漫数据集,其中包含动漫的发行年份、受欢迎程度等列。

接下来,我们学习了如何通过两种不同的方法设置数据框的索引。第一种方法用于使用元素列表设置数据框的索引。

第二种方法使用了一种名为 的方法set_index,该方法使数据框中已存在的列作为索引。

回到本文的要点,当我们使用 matplotlib 绘制数据框时,我们已经看到了将索引设置为 X 轴值的三种方法。

第一种方法使用plt.plot它绘制预先声明为 X 轴和另一列作为 Y 轴的数据框的索引。

我们使用的下一个方法df.plot主要用于绘制数据框或序列。

最后,我们使用 matplotlib 的 xticks 函数来更好地理解绘图的比例。

参考

从这里获取动漫数据集。

您可以从 Pandas 文档中了解有关 set_index 方法的更多信息。

了解有关 df.plot 方法的更多信息。

您可以在此处找到有关 xticks 方法的更多信息。

请参阅有关同一主题的堆栈溢出答案链。