在下面的代码中,我可以为两个方面设置两个不同的比例。现在,我想格式化大规模(例如将其转换为带scale_y_continuous(labels = dollar)
的美元)。如何格式化单个方面的比例?
df <- data.frame(value = c(50000, 100000, 4, 3),
variable = c("big", "big", "small", "small"),
x = c(2010, 2011, 2010, 2011))
ggplot(df) + geom_line(aes(x, value)) + facet_wrap(~ variable, scales = "free_y")
A similar question a long time ago about setting individual limit没有答案。我希望ggplot2 2.0能够做到这一点。
答案 0 :(得分:1)
函数scale_y_continuous
允许函数用于labels
参数。我们可以创建一个使用最小big
值(或任何其他值)作为阈值的自定义标签。
dollar <- function(x) {
ifelse(x >= min(df$value[df$variable == "big"]),
paste0("$", prettyNum(x, big.mark=",")), x)
}
ggplot(df) + geom_line(aes(x, value)) + facet_wrap(~ variable, scales = "free_y") +
scale_y_continuous(labels = dollar)