我在Python ggplot中有3个直方图,效果很好。我想将它们组合成一个图表。我已经被告知有一种方法可以将geom_histogram图层添加到你的绘图中并将它传递给你想要它使用的数据,但我无法弄明白。
这是我的代码:
import pandas as pd
import numpy as np
from ggplot import *
subway_data_df = pd.read_csv('/home/brian/Dropbox/Data_Science_Course/Final Intro Data Science Project/turnstile_weather_v2.csv')
dry_days_df = subway_data_df.loc[subway_data_df['rain'] == 0].reset_index()
rainy_days_df = subway_data_df.loc[subway_data_df['rain'] == 1].reset_index()
very_rainy_days_df = subway_data_df.loc[subway_data_df['precipi'] > .10].reset_index()
print ggplot(very_rainy_days_df, aes(x = 'ENTRIESn_hourly')) + geom_histogram(binwidth=100, fill = 'green') + xlim(0, 8000) + ylim(0,6000)\
+ ggtitle('Subway Useage Under Heavy Rain Conditions') + xlab('Number of Entries per Hour') + ylab('Frequency')
print ggplot(rainy_days_df, aes(x = 'ENTRIESn_hourly')) + geom_histogram(binwidth=100, fill = 'blue') + xlim(0, 8000) + ylim(0,6000)\
+ ggtitle('Subway Useage Under Rainy Conditions') + xlab('Number of Entries per Hour') + ylab('Frequency')
print ggplot(dry_days_df, aes(x = 'ENTRIESn_hourly')) + geom_histogram(binwidth=100, fill = 'red') + xlim(0, 8000) + ylim(0,6000)\
+ ggtitle('Subway Useage Under Dry Conditions') + xlab('Nubmer of Entries per Hour') + ylab('Frequency')
答案 0 :(得分:0)
因此,要将它们全部合并到一个图表中,您只需将标志转换为一个数据框中的一个变量即可。为此,我们将使用数据框的apply
方法。根据我对您上面提供的代码的解释,我提出了以下内容:
def split_groups(row):
if row['rain'] == 0:
return 1
elif row['precipi'] <= 0.1:
return 2
else:
return 3
subway_data_df['rain_type'] = subway_data_df.apply(split_groups, axis=1)
情节函数看起来像这样:
print ggplot(subway_data_df, aes(x = 'ENTRIESn_hourly', fill='rain_type')) + geom_histogram(binwidth=5000)
情节将如下所示: