使用下面的数据框df
df <- data.frame(
model=c(rep('corolla',3),rep( 'accord',3), rep('sunny',3)),
variable=c('urban_mileage', 'rural_mileage', 'highway_mileage'),
rescale=rnorm(9),
year=c(rep(1998,3),rep( 1997,3), rep(2003,3)),
kmdone=sample(10:100,9)*1e3
)
> df
model variable rescale year kmdone
1 corolla urban_mileage -1.03675182 1998 56000
2 corolla rural_mileage 1.06079162 1998 83000
3 corolla highway_mileage -0.18808551 1998 19000
4 accord urban_mileage -0.05151496 1997 69000
5 accord rural_mileage 0.05219512 1997 54000
6 accord highway_mileage -2.03139240 1997 21000
7 sunny urban_mileage -0.06225862 2003 40000
8 sunny rural_mileage 1.38191440 2003 96000
9 sunny highway_mileage -1.02367124 2003 55000
>
我使用geom_tile创建热图,如下所示
ggplot(df, aes(variable, model)) + geom_tile(aes(fill = rescale), colour = "white") +
scale_fill_gradient2(low = "red", mid = "white", high = "green") +
labs(x = "",y = "") +
theme(legend.title = element_blank(),
axis.text.x = element_text(angle=30,hjust=1,vjust=1.0),
axis.text.y = element_text(size = 12))
这给出了道路类型里程的热图表示,如最后的图像所示。
我需要用两件事加强这个
答案 0 :(得分:8)
两次小修改......使用paste(model,year)
表示y审美,并添加geom_text
,如图所示......
ggplot(df, aes(variable, paste(model,year))) + geom_tile(aes(fill = rescale), colour = "white") +
geom_text(aes(label=kmdone)) +
scale_fill_gradient2(low = "red", mid = "white", high = "green") +
labs(x = "",y = "") +
theme(legend.title = element_blank(),
axis.text.x = element_text(angle=30,hjust=1,vjust=1.0),
axis.text.y = element_text(size = 12))
答案 1 :(得分:2)