我有一个与转售单位有关的交易数据集。
我使用了流水线函数根据flat_type和region对数据进行分组和汇总
plotdata1<-data1 %>%
group_by(year, region,flat_type) %>%
summarize(mean_price = mean(resale_price))
这是我的数据集
year region flat_type mean_price
<int> <fct> <fct> <dbl>
1 2007 Central 3 ROOM 236452.
2 2007 Central 4 ROOM 367471.
3 2007 Central 5 ROOM 467264.
4 2007 East 3 ROOM 198682.
5 2007 East 4 ROOM 266645.
6 2007 East 5 ROOM 323110.
但是,由于有2个分组变量,因此这不允许我正确绘制折线图。我打算按地区(包括所有3种类型的公寓)来绘制公寓的平均转售价格。然后,使用shiny
,我将能够使用selectInput
函数在所有平面类型或每个单独的平面类型之间进行选择。例如,该图将能够显示每个区域3个房间的平均转售价格。
这是情节的代码
ggplot(data=plotdata1,aes(x=year,y=mean_price))+
geom_line(stat = 'identity',aes(colour=region,group=region))+
geom_point()+
xlim(c(2006,2018))+
ylab("Average Price")+
xlab('Year')
哪个给我错误
错误:列
region
是一个分组,因此无法修改 变量
执行此操作并根据区域对其进行绘制,但是我将无法从输入框中选择每个平面类型。
plotdata1<-data1 %>%
group_by(year, region) %>%
summarize(mean_price = mean(resale_price))
答案 0 :(得分:0)
不知道为什么会收到该错误。您可以尝试将aes()
而不是geom放入ggplot()
通话中的通话吗?这对我有用...
set.seed(123)
df <- data.frame(region=sample(letters[1:4],100,T),
type=sample(c('1 room','2 room','3 room'),100,T),
year=sample(2010:2015,100,T),
price=sample(1000:2000,100,T))
df %>% group_by(region,type,year) %>%
summarise(mean.price=mean(price)) %>%
ggplot(aes(year,mean.price,group=region,color=region)) + geom_point() + geom_line() +
facet_wrap(~type,scales='free')
如果您使用的是shiny
,则可以在ggplot调用之前删除facet_wrap
并添加filter()
,以便用户可以指定要绘制的房价类型。