R &引用;错误:应使用'aes()'或'aes\'u()'创建映射;

R &引用;错误:应使用'aes()'或'aes\'u()'创建映射;,r,ggplot2,R,Ggplot2,我试图用R中的ggplot2包构建一个简单的直方图。 我从csv文件加载数据,并将其中两列放在一个数据框中,如下所示: df = data.frame(sp = data$species, cov = data$totalcover) sp被认为是23个级别(我的行数)的因子,cov被认为是23个数字。 然后,为了构建直方图,我执行以下操作: ggplot(df, aes(df$sp, df$cov) + geom_histogram()) 但是,R返回错误:“错误:应使用aes()或aes

我试图用R中的ggplot2包构建一个简单的直方图。 我从csv文件加载数据,并将其中两列放在一个数据框中,如下所示:

df = data.frame(sp = data$species, cov = data$totalcover)
sp被认为是23个级别(我的行数)的因子,cov被认为是23个数字。 然后,为了构建直方图,我执行以下操作:

ggplot(df, aes(df$sp, df$cov) + geom_histogram())
但是,R返回错误:“错误:应使用
aes()
aes_389;()
创建映射”

如果我已经在使用aes,这怎么可能呢?它可能和值的类型有关吗?

两个错误:

  • ggplot之后必须关闭括号,然后调用直方图
  • df
    上调用ggplot时指定数据集。因此,无需添加
    df$sp
    <代码>sp就足够了
  • 此代码应该有效(如果您的数据没有问题):


    是的,它起作用了。如果已经指定了数据,则不应使用美元符号$。我也有同样的问题,当我去掉美元符号时,它起了作用

    ggplot(dat1, aes(Q84, REGION, fill = Q3)) +
      geom_bar(stat = "Identity") +
      facet_grid(REGION ~ Q84)
    
    避免这种情况:

    ggplot(dat1, aes(dat1$Q84, dat1$REGION, fill = Q3)) +
      geom_bar(stat = "Identity") +
      facet_grid(dat1$REGION ~ Q84)
    

    其中,
    dat1
    是我的数据集的名称。

    我有相同的错误,即使我使用的是aes()。所以我在aes()之前使用了“映射”

    试一试

    而不是

    ggplot(df, aes(df$sp, df$cov) + geom_histogram())
    

    替换括号作为另一种可能的解决方案,我发现同时加载库(cowplot)和库(ggplot2)会使“ggsave”(“test.pdf”,p1)“不起作用


    相反,使用cowplot语法“save_plot(“test.pdf”,p1)”

    不要在aes中使用$。仅在ggplot中指定数据集。我使用了
    plot%ggplot()

    您不应该在
    aes()的内部使用
    $
    。此外,直方图是单变量图,因此不需要为它们指定y变量。你的数据已经汇总了吗?也许你想要一个条形图?请尝试
    ggplot(df,aes(sp,cov)+geom\u col()
    。如果您收到相同的消息,则可能已覆盖默认的
    aes()
    函数。查看
    conflicts()
    以查看是否正在隐藏
    ggplot2::aes
    函数。非常感谢!geom\u col()它实际上是我想要的,并且不会返回任何错误,因此我认为我没有覆盖任何内容。请修复您的多个拼写错误。事实上,在
    aes()
    中使用
    $
    引用可能会造成难以诊断的情况,即数据以错误的顺序打印(或标签不匹配等)。是否要稍微扩展您的答案,以显示如何在aes()命令中指定变量?这将有助于在数据帧中指定两个以上的变量。
    ggplot()+
    geom_boxplot (df, mapping = aes(x= sp, y= cov))
    
    ggplot(df, aes(df$sp, df$cov))+ geom_histogram()
    
    ggplot(df, aes(df$sp, df$cov) + geom_histogram())