如何翻转然后放大盒子图?

时间:2016-09-23 12:21:58

标签: r ggplot2 boxplot

请考虑以下代码:

library(ggplot2)
ggplot(diamonds, aes("", price)) + geom_boxplot() + coord_flip()

Diamond Prices

翻转方框图后,如何在价格上放大c(0,7000)(这是新的x轴)?

我觉得它与coord_cartesian(ylim=c(0, 7000))有关,但这似乎与 coord_flip()无关。

3 个答案:

答案 0 :(得分:5)

这是我的解决方案:

ggplot(diamonds, aes("", price)) + 
  geom_boxplot() + 
  coord_flip(ylim=c(0, 7000))

只需将ylim命令组合为coord_flip()中的参数。

enter image description here

答案 1 :(得分:0)

您可以使用scale_y_continuous()

library(ggplot2)
ggplot(diamonds, aes("", price)) + 
  geom_boxplot() + 
  coord_flip() +
  scale_y_continuous(limits = c(0, 7000))

请记住,coord_flip()只是旋转绘图,因此您在 y 轴上调用scale_,这是您指定的price。我通常喜欢把它称为最后一个原因:帮助限制哪个轴的混淆!

答案 2 :(得分:-1)

我认为您需要手动计算箱线图统计数据并绘制这些数据。

# Compute summary statistics with max (y100) set to cutoff (7000)
df <- data.frame(x = 1,
             y0 = min(diamonds$price),
             y25 = quantile(diamonds$price, 0.25),
             y50 = median(diamonds$price),
             y75 = quantile(diamonds$price, 0.75),
             y100 = 7000
             )

ggplot(df, aes(x)) +
  geom_boxplot(aes(ymin = y0, lower = y25, middle = y50, upper = y75, ymax = y100),
          stat = "identity") +
  coord_flip()