0

我有一个使用facet_wrap函数创建的多面板图,我想为每个 y 轴添加一个顶部刻度(以便每个 y 轴以一个数字结尾)。

当我一次创建一个图时,我可以手动执行此操作scale_y_continuous(根据最大值设置限制),但我不确定如何使用facet_wrap. 设置使用限制max()似乎不起作用。

只是为了让您了解我在说什么,下面是使用 ggplot2 创建单个图并启用 y 轴上的顶部刻度的代码。

plot <- ggplot(diamonds, aes(clarity)) +
  geom_bar() +
  scale_y_continuous(expand = c(0, 0),limits=c(0,15000)) +
  theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5),
    axis.line = element_line(),
    axis.title = element_text(size=15,face="bold")) +
  xlab("x_1") +
  ylab("y_1") +
  theme(panel.background = element_blank()
    ,panel.grid.major = element_blank()
    ,panel.grid.minor = element_blank()
    ,panel.border = element_blank()) +
  labs(title = "xy", size = 20)
plot

这就是情节。

在此处输入图像描述

先感谢您!编辑:我已经编辑了代码以显示情节。再次感谢!

4

1 回答 1

1

您可以定义自己的休息功能。一个简单的解决方案是

break_fct <-  function(x){
  round(seq(min(x), max(x), length = 5))
}

当然,您可以使用pretty和 最大值的某种组合来改进这一点。您应该找到适合您的数据的解决方案。

plot <- ggplot(diamonds, aes(clarity)) +
  geom_bar() +
  scale_y_continuous(expand = c(0, 0), breaks = break_fct) +
  theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5),
        axis.line = element_line(),
        axis.title = element_text(size=15, face="bold")) +
  xlab("x_1") +
  ylab("y_1") +
  theme(panel.background = element_blank()
        ,panel.grid.major = element_blank()
        ,panel.grid.minor = element_blank()
        ,panel.border = element_blank()) +
  labs(title = "xy", size = 20) + 
  facet_grid(cut~., scales = "free_y")

plot

阴谋

于 2015-05-18T09:59:05.017 回答