如何使用 pandas df 基于次要变量叠加多个 sns distplots 或更改颜色
How do I overlay multiple sns distplots or change the colour based on a secondary variable using a pandas df
我有一个 pandas 数据框,其中包含一个 'frequency_mhz' 变量和一个 'type' 变量。我想使用覆盖所有频率但根据 'type'.
更改颜色的 seaborne 创建一个 dist 图
small_df = df[df.small_airport.isin(['Y'])]
medium_df = df[df.medium_airport.isin(['Y'])]
large_df = df[df.large_airport.isin(['Y'])]
plt.figure()
sns.distplot(small_df['frequency_mhz'], color='red')
plt.figure()
sns.distplot(medium_df['frequency_mhz'], color='green')
plt.figure()
sns.distplot(large_df['frequency_mhz'])
有什么方法可以将3个叠加到一个图中吗?或者我错过了根据另一个变量更改条形颜色的方法,就像在其他图中使用 'hue=' 一样?
您可以指定 ax
作为 kwarg 来叠加您的绘图:
small_df = df[df.small_airport.isin(['Y'])]
medium_df = df[df.medium_airport.isin(['Y'])]
large_df = df[df.large_airport.isin(['Y'])]
ax = sns.distplot(small_df['frequency_mhz'], color='red')
sns.distplot(medium_df['frequency_mhz'], color='green', ax=ax)
sns.distplot(large_df['frequency_mhz'], ax=ax)
plt.show()
我有一个 pandas 数据框,其中包含一个 'frequency_mhz' 变量和一个 'type' 变量。我想使用覆盖所有频率但根据 'type'.
更改颜色的 seaborne 创建一个 dist 图small_df = df[df.small_airport.isin(['Y'])]
medium_df = df[df.medium_airport.isin(['Y'])]
large_df = df[df.large_airport.isin(['Y'])]
plt.figure()
sns.distplot(small_df['frequency_mhz'], color='red')
plt.figure()
sns.distplot(medium_df['frequency_mhz'], color='green')
plt.figure()
sns.distplot(large_df['frequency_mhz'])
有什么方法可以将3个叠加到一个图中吗?或者我错过了根据另一个变量更改条形颜色的方法,就像在其他图中使用 'hue=' 一样?
您可以指定 ax
作为 kwarg 来叠加您的绘图:
small_df = df[df.small_airport.isin(['Y'])]
medium_df = df[df.medium_airport.isin(['Y'])]
large_df = df[df.large_airport.isin(['Y'])]
ax = sns.distplot(small_df['frequency_mhz'], color='red')
sns.distplot(medium_df['frequency_mhz'], color='green', ax=ax)
sns.distplot(large_df['frequency_mhz'], ax=ax)
plt.show()