如何在ggplot删除geom中停止ylim功能

时间:2019-02-27 02:55:17

标签: r ggplot2

问题

当我尝试减小ggplot中y轴的比例时,我收到一条警告消息"Removed 6 rows containing missing values (geom_col).",并且返回的图形减去了geom层(返回了一个空白图形)。我想知道为什么会这样,以及如何重新缩放y轴而不会出现错误。

数据

df <- structure(list(income_year = c("2010–11", "2011–12", "2012–13", 
"2013–14", "2014–15", "2015–16"), wage = c(29239.0174658421, 
30887.9384853822, 33531.5431774418, 33938.804992963, 34252.5789256144, 
35474.8271442147)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, 
-6L))

我的尝试

ggplot(data = df, aes(x = income_year, y = wage)) +
  geom_col() +
  ylim(25000, 36000)

我认为可以,因为我选择的ylim值大于我的数据的最小值和最大值。

> summary(df)
 income_year             wage      
 Length:6           Min.   :29239  
 Class :character   1st Qu.:31549  
 Mode  :character   Median :33735  
                    Mean   :32887  
                    3rd Qu.:34174  
                    Max.   :35475  

1 个答案:

答案 0 :(得分:3)

设置ylim()实际上会在绘制之前更改您的数据,并且由于您正在尝试绘制条形图,因此它会限制您的范围并切断所有输入到条形图中的数据。您可以使用coord_cartesian()不截取任何值:

ggplot(data = df, aes(x = income_year, y = wage)) +
  geom_col() +
  coord_cartesian(ylim = c(25000, 36000))