R 无法在ggplot中使用min()和max()设置xlim和ylim

R 无法在ggplot中使用min()和max()设置xlim和ylim,r,ggplot2,R,Ggplot2,我错过了一些关键的东西,我看不到 为什么“最小”和“最大”无法设置轴限制 mtcars %>% select(mpg, cyl, disp, wt) %>% filter(complete.cases(disp)) %>% ggplot() + geom_point(aes(x=mpg, y=disp, colour=cyl), size=3) + xlim(min(mpg, na.rm=TRUE),max(mpg, na.rm=TRUE)) +

我错过了一些关键的东西,我看不到

为什么“最小”和“最大”无法设置轴限制

mtcars %>%  
  select(mpg, cyl, disp, wt) %>% 
  filter(complete.cases(disp)) %>% 
  ggplot() +
  geom_point(aes(x=mpg, y=disp, colour=cyl), size=3) +
  xlim(min(mpg, na.rm=TRUE),max(mpg, na.rm=TRUE)) +
  ylim(min(disp, na.rm=TRUE),max(disp, na.rm=TRUE)) +
  scale_colour_gradient(low="red",high="green", name = "cyl")
这项工作:

    mtcars %>%  
      select(mpg, cyl, disp, wt) %>% 
      filter(complete.cases(disp)) %>% 
      ggplot() +
      geom_point(aes(x=mpg, y=disp, colour=cyl), size=3) +
#      xlim(min(mpg, na.rm=TRUE),max(mpg, na.rm=TRUE)) +
#      ylim(min(disp, na.rm=TRUE),max(disp, na.rm=TRUE)) +
      scale_colour_gradient(low="red",high="green", name = "cyl")

ggplot无法以dplyr可以访问的方式访问列值

您需要添加以下数据:

mtcars %>%  
  select(mpg, cyl, disp, wt) %>% 
  filter(complete.cases(disp)) %>% 
  ggplot() +
  geom_point(aes(x=mpg, y=disp, colour=cyl), size=3) +
  xlim(min(mtcars$mpg, na.rm=TRUE),max(mtcars$mpg, na.rm=TRUE)) +
  ylim(min(mtcars$disp, na.rm=TRUE),max(mtcars$disp, na.rm=TRUE)) +
  scale_colour_gradient(low="red",high="green", name = "cyl")

除了
aes()
内部和
facet*
函数中的公式外,不能在
ggplot
对象中引用列名。但是辅助功能
expand\u scale
可以帮助您以更可控的方式扩展比例

例如:

# add 1 unit to the x-scale in each direction
scale_x_continuous(expand = expand_scale(add = 1))
# have the scale exactly fit the data, no padding
scale_x_continuous(expand = expand_scale(0, 0))
# extend the scale by 10% in each direction
scale_x_continuous(expand = expand_scale(mult = .1))
有关详细信息,请参见
?缩放x_连续
,尤其是
?扩展缩放
。也可以选择只填充每个刻度的顶部或底部,在
?expand_scale
中有一些示例