使用ISLR的Carseats数据集,我想在一张图中绘制所有其他变量与“ Sales”的关系。为此,我使用了tidyr,到目前为止,tidyr的效果很好,但是由于刻度线太多,因此x轴在图形中不可读。有没有一种方法可以标准化每个图中有多少刻度线或进行一些分隔以使其易于阅读?
library(ISLR)
library(tidyr)
library(ggplot2)
Carseats %>%
gather(-Sales, key="var", value="value") %>%
ggplot(aes(x=value, y=Sales)) +
geom_point() +
facet_wrap(~var, scales="free_x") +
theme_bw()
我只希望x轴可读。
答案 0 :(得分:1)
我建议绘制两个图,一个用分类的x轴(例如ShelveLoc,Urban和US),另一个用连续的x轴。然后,如有必要,您可以使用cowplot
或patchwork
将它们组合成一个绘图对象。
具有连续x轴的图:
Carseats %>%
select(-c("ShelveLoc", "Urban", "US")) %>%
gather(-Sales, key="var", value="value") %>%
ggplot(aes(x=value, y=Sales)) +
geom_point() +
facet_wrap(~var, scales="free_x", shrink = T) +
theme_bw()
具有分类x轴的图:
Carseats %>%
select(c("Sales", "ShelveLoc", "Urban", "US")) %>%
gather(-Sales, key="var", value="value") %>%
ggplot(aes(x=value, y=Sales)) +
geom_point() +
facet_wrap(~var, scales="free_x", shrink = T) +
theme_bw()