在Python中用Pandas绘制多重密度图
多重密度图是比较数据中多组分布的一个好方法。我们可以使用pandas plot.density()函数制作多个密度图。然而,如果我们使用密度函数,我们需要将数据转换为宽格式。宽幅数据在不同的列中代表不同的组。我们使用Pandas pivot()函数转换宽格式的数据。
让我们创建一个简单的数据框架,然后将其重塑为一个宽格式:
示例 1:
在这里,我们使用的是这个数据集。
第1步:从数据集创建数据框架。
import pandas as pd
# creating a dataframe
df = pd.read_csv(r"gapminder1.csv")
df.head()
输出:
第2步:让我们根据国家在不同的列中对数据进行分组,这样我们就可以应用density()函数来绘制多张密度图。
# converting data into wide-format
data_wide = df.pivot(columns='continent',
values='lifeExp')
data_wide.head()
输出:
步骤3:现在让我们用plot.density()绘制多个密度图。
import matplotlib.pyplot as plt
# calling density() to make
# multiple density plot
data_wide.plot.density(figsize = (7, 7),
linewidth = 4)
plt.xlabel("life_Exp")
输出 :
例子2:我们也可以在数据框架上调用plot.kde()函数,用Pandas制作多个密度图。
在这里,我们在这个例子中使用提示数据集,你可以在这里找到它。
第1步:从数据集创建数据框架。
import pandas as pd
# creating a dataframe
df = pd.read_csv(r"tips.csv")
df.head()
输出:
步骤2:现在应用pivot()函数来获得宽格式的数据框架,然后应用kde()来获得多重密度图。
# Converting to wide dataframe
data_wide = df.pivot(columns = 'day',
values = 'total_bill')
# plotting multiple density plot
data_wide.plot.kde(figsize = (8, 6),
linewidth = 4)
输出: