📅  最后修改于: 2023-12-03 15:33:24.830000             🧑  作者: Mango
Pandas 是一个广泛使用的 Python 数据分析和操作库,它提供了构建数据分析流程所需的各种实用功能,其中包括可视化工具。Pandas 提供了强大的绘图工具,使得绘制各种类型的图表如线图变得非常简单。本文将为您介绍 Pandas 的线图绘制方法。
在开始之前,让我们先导入 Pandas 库并设置一些常用的绘图选项。
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['figure.figsize'] = [12.0, 8.0]
plt.rcParams['axes.labelsize'] = 12
plt.rcParams['xtick.labelsize'] = 10
plt.rcParams['ytick.labelsize'] = 10
plt.rcParams['axes.grid'] = True
绘制简单线图的方法非常简单。首先,我们需要创建一个 Pandas 数据框(DataFrame)对象并将其传递给 .plot()
方法。.plot()
方法有许多选项可以帮助我们自定义绘图,例如选择线条颜色、标记样式、线条宽度等。
下面的示例中,我们将创建一个简单的数据框,它包含表示一周的时间的日期(index)和每天的销售额。然后,我们将使用 .plot()
方法以默认设置绘制线图。
import pandas as pd
import matplotlib.pyplot as plt
data = {'日期': ['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04', '2018-01-05', '2018-01-06', '2018-01-07'],
'销售额': [2000, 2500, 1800, 3000, 2800, 3500, 4200],}
df = pd.DataFrame(data)
df['日期'] = pd.to_datetime(df['日期'])
df = df.set_index('日期')
df.plot()
plt.show()
如果我们想指定哪些列用作 x 和 y 值,可以将它们传递给 .plot()
方法的 x
和 y
参数。下面的示例中,我们将使用一个列表来指定使用哪些列,然后通过指定颜色为蓝色和透明度为 0.5 来定制我们的线条。
import pandas as pd
import matplotlib.pyplot as plt
data = {'日期': ['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04', '2018-01-05', '2018-01-06', '2018-01-07'],
'销售额': [2000, 2500, 1800, 3000, 2800, 3500, 4200],}
df = pd.DataFrame(data)
df['日期'] = pd.to_datetime(df['日期'])
df = df.set_index('日期')
df.plot(x='日期', y='销售额', color='blue', alpha=0.5)
plt.show()
为了进一步自定义我们的图表,我们可以添加标题和标签。.plot()
方法以及 matplotlib 库提供了许多用于添加标题(title()
)、x 标签(xlabel()
)和 y 标签(ylabel()
)的方法。
下面的示例中,我们将为我们的图表添加一个标题、一个 x 标签和一个 y 标签。
import pandas as pd
import matplotlib.pyplot as plt
data = {'日期': ['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04', '2018-01-05', '2018-01-06', '2018-01-07'],
'销售额': [2000, 2500, 1800, 3000, 2800, 3500, 4200],}
df = pd.DataFrame(data)
df['日期'] = pd.to_datetime(df['日期'])
df = df.set_index('日期')
ax = df.plot(x='日期', y='销售额', color='blue', alpha=0.5)
ax.set_title('每天的销售额')
ax.set_xlabel('日期')
ax.set_ylabel('销售额(元)')
plt.show()
为了在同一图表中添加多个曲线,我们可以多次调用 .plot()
方法,每次传递一个不同的 x 值和 y 值。下面的示例中,我们将创建两个数据集(df1 和 df2),并为每个数据集创建一条曲线。然后,我们将在同一图表中绘制这两条曲线,并通过指定标签和颜色来区分它们。
import pandas as pd
import matplotlib.pyplot as plt
data1 = {'日期': ['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04', '2018-01-05', '2018-01-06', '2018-01-07'],
'销售额': [2000, 2500, 1800, 3000, 2800, 3500, 4200],}
data2 = {'日期': ['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04', '2018-01-05', '2018-01-06', '2018-01-07'],
'利润': [500, 600, 400, 700, 550, 800, 950],}
df1 = pd.DataFrame(data1)
df1['日期'] = pd.to_datetime(df1['日期'])
df1 = df1.set_index('日期')
df2 = pd.DataFrame(data2)
df2['日期'] = pd.to_datetime(df2['日期'])
df2 = df2.set_index('日期')
ax = df1.plot(color='blue', alpha=0.5, label='销售额')
df2.plot(ax=ax, color='red', alpha=0.5, label='利润')
ax.set_title('每天的销售额和利润')
ax.set_xlabel('日期')
ax.set_ylabel('金额(元)')
ax.legend(loc='upper left')
plt.show()
我们可以通过指定线条样式和标记样式来自定义线条的外观。下面的示例中,我们将使用不同的线条样式和标记样式来定制我们的图表。
import pandas as pd
import matplotlib.pyplot as plt
data = {'日期': ['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04', '2018-01-05', '2018-01-06', '2018-01-07'],
'销售额': [2000, 2500, 1800, 3000, 2800, 3500, 4200],}
df = pd.DataFrame(data)
df['日期'] = pd.to_datetime(df['日期'])
df = df.set_index('日期')
df.plot(style='.-', color='blue', alpha=0.5, linewidth=2, markersize=10)
plt.title('每天的销售额')
plt.xlabel('日期')
plt.ylabel('销售额(元)')
plt.grid(True)
plt.show()
在本文中,我们学习了如何使用 Pandas 绘制线图。我们看到了如何创建简单线图、指定 x 和 y 值、添加标题和标签、添加多个曲线以及自定义线条样式。通过掌握这些技巧,您将能够创建具有吸引力且易于理解的数据可视化图表。