ggplot add ticks to each plot in a facet_wrap

2020-03-02 06:50发布

I'd like to display x-axis ticks on plots in the upper rows in facet_wraps. For example:

library(ggplot2)
ggplot(diamonds, aes(carat)) +  facet_wrap(~ cut, scales = "fixed") +  geom_density()

generates this plot:

Actual Plot

I'd like to have ticks as I've drawn in on this plot: Desired Plot

Is there a simple way to achieve this result?

1条回答
ゆ 、 Hurt°
2楼-- · 2020-03-02 07:04

Using scales = "free_x" adds x axes to each plot:

ggplot(diamonds, aes(carat)) + 
    geom_density() + 
    facet_wrap(~cut, scales = "free_x")

plot with x axes

However, as you can see and the syntax suggests, it also frees the limits of each plot to adjust automatically, so if you want them all to be consistent, you'll need to set them with xlim, lims or scale_x_continuous:

ggplot(diamonds, aes(carat)) + 
    geom_density() + 
    xlim(range(diamonds$carat)) + 
    # or lims(x = range(diamonds$carat))    
    # or scale_x_continuous(limits = range(diamonds$carat))
    facet_wrap(~cut, scales = "free_x")

plot with uniform x axes

查看更多
登录 后发表回答