R Can';t根据最小值和最大值缩放ggplot轴

R Can';t根据最小值和最大值缩放ggplot轴,r,ggplot2,R,Ggplot2,我想根据如下所示的最小和最大cyl值缩放ggplot2轴。但是我的代码有一个错误。所以我在这里 library(tidyverse) mtcars %>% count(cyl) %>% arrange(desc(n)) %>% ggplot(aes(cyl, n)) + geom_col() + scale_x_continuous( breaks = seq(min(cyl) - 1, max(cyl) + 1, 1) ) 我希望

我想根据如下所示的最小和最大
cyl
值缩放ggplot2轴。但是我的代码有一个错误。所以我在这里

library(tidyverse)
mtcars %>% 
  count(cyl) %>% 
  arrange(desc(n)) %>% 
  ggplot(aes(cyl, n)) + 
  geom_col() +  
  scale_x_continuous(
    breaks = seq(min(cyl) - 1, max(cyl) + 1, 1)
  )
我希望我的x轴从2延伸到10。为什么我的代码会抛出错误:

"Error in seq(min(cyl) - 1, max(cyl) + 1, 1) : object 'cyl' not found"

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

您希望在每个方向将x比例扩展1个单位,因此应执行以下操作:

scale_x_continuous(expand = expand_scale(add = 1))

有关详细信息,请参见
?缩放x_连续
,尤其是
?扩展缩放

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

您希望在每个方向将x比例扩展1个单位,因此应执行以下操作:

scale_x_continuous(expand = expand_scale(add = 1))

有关详细信息,请参见
?scale\u x\u continuous
,尤其是
?expand\u scale

由于某些原因,
scale\u x\u continuous
中的
无法从管道函数中获取对数据的引用,如果将其更改为以下值,则工作正常

library(tidyverse)
library(dplyr)
library(ggplot2)

datas <- mtcars %>% 
  count(cyl) %>% 
  arrange(desc(n)) 

ggplot(datas, aes(x=cyl, y=n)) + geom_col() +
  scale_x_continuous(
    breaks = seq(min(datas$cyl) - 1, max(datas$cyl) + 1, 1)
  )
库(tidyverse)
图书馆(dplyr)
图书馆(GG2)
数据%
计数(气缸)%>%
排列(描述(n))
ggplot(数据,aes(x=cyl,y=n))+geom_col()+
比例x连续(
中断=顺序(最小值(数据$cyl)-1,最大值(数据$cyl)+1,1)
)

由于某种原因,
seq
内的
比例x_连续
无法从管道函数中获取对数据的引用如果将其更改为以下值,则其工作正常

library(tidyverse)
library(dplyr)
library(ggplot2)

datas <- mtcars %>% 
  count(cyl) %>% 
  arrange(desc(n)) 

ggplot(datas, aes(x=cyl, y=n)) + geom_col() +
  scale_x_continuous(
    breaks = seq(min(datas$cyl) - 1, max(datas$cyl) + 1, 1)
  )
库(tidyverse)
图书馆(dplyr)
图书馆(GG2)
数据%
计数(气缸)%>%
排列(描述(n))
ggplot(数据,aes(x=cyl,y=n))+geom_col()+
比例x连续(
中断=顺序(最小值(数据$cyl)-1,最大值(数据$cyl)+1,1)
)

@divibisan对不起,在StackOverflow中键入时出现的拼写错误,现在已经修复,但相同的问题仍然存在,知道我做错了什么吗?看看答案重复处的问题相同,但答案不好。正确的答案应该是使用
scale\x\u continuous
expand
参数。你想在天平的两端各加一个单位吗<代码>缩放连续(扩展=扩展缩放(添加=1))
。是的,开始吧it@divibisan抱歉,在StackOverflow中键入时出现的拼写错误,现在已经修复,但相同的问题仍然存在,知道我做错了什么吗?看看答案重复处的问题是相同的,但答案不好。正确的答案应该是使用
scale\x\u continuous
expand
参数。你想在天平的两端各加一个单位吗<代码>缩放连续(扩展=扩展缩放(添加=1))。是的,开始吧