【问题标题】:ggplot2 warnings : Warning message: Computation failed in `stat_density()`: attempt to apply non-functionggplot2 警告:警告消息:`stat_density()` 中的计算失败:尝试应用非函数
【发布时间】:2016-12-14 17:46:05
【问题描述】:

我正在尝试使用 ggplot 绘制我的 2 个数据集。这是我下面的代码。

data <- read.table("test.txt",sep="\t",header = F)
y <- data.frame(v1=data$V7,v2=data$V8)
head(y)

         v1         v2
1 -0.305037 0.00223546
2 -0.207126 0.26586100
3  0.290341 0.49381600
4 -0.345713 0.21023300
5 -1.249040 0.54090400
6 -0.340126 0.60984800

y2<-head(y,100)
d2<-melt(y2)
ggplot(d2,aes(y2=value, fill=variable)) + geom_density(alpha=0.25)

我在这篇文章中为我的数据集寻求帮助 Overlay density plots 我收到此警告,但未生成图表:

警告信息: stat_density() 中的计算失败: 尝试应用非函数

我怎样才能做到这一点?

谢谢

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    这似乎产生了我认为您正在寻找的东西。最大的事情是在ggplot调用中将y2=改为x=

    (我只是使用 y 作为您提供的值。我认为这应该适用于您拥有的任何 y

    y2 &lt;- head(y,100) 仅在您尝试仅为前 100 个值创建密度图时才需要。

    y <- data.frame(v1 = c(-.305, -.207, .290, -.346, -1.25, -.340),
                    v2 = c(.002, .266, .464, .210, .541, .610))
    
    library('reshape2')
    d2 <- melt(y)
    
    library('ggplot2')
    ggplot(d2, aes(x = value, fill = variable)) + geom_density(alpha = .25)
    

    【讨论】:

    • 谢谢山姆,这行得通;你能告诉我 ggplot 调用中的 x 是什么意思吗?
    • 它指的是应该用于x轴的值。
    • 嗨 Sam,有没有办法可以将 x 轴值更改为 -3 到 3,默认情况下,在我的示例中,它在 x 轴上绘制 -7 到 +7?
    • 是的。查看scale_x_continuouscoord_cartesian 函数。例如,如果我在上面的最后一行添加了+ coord_cartesian(xlim = c(-1, 1)),它会将图表限制为仅介于 -1 和 1 之间的 xvalues。
    【解决方案2】:

    如果其他人看到这个问题和与特定案例相关的公认答案,那么导致相当令人费解和误导性错误消息的潜在问题是 aes() 有问题。当我忘记包含 aes() 时,我也收到了同样的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-03
      • 2021-11-03
      • 1970-01-01
      • 1970-01-01
      • 2021-01-19
      • 1970-01-01
      • 2014-10-26
      • 2022-08-20
      相关资源
      最近更新 更多