【问题标题】:ggplot in function using variables -- geom_density: arguments imply differing number of rows使用变量的函数中的ggplot - geom_density:参数意味着不同的行数
【发布时间】:2013-09-03 06:22:38
【问题描述】:

我有一个使用 ggplot2 打印和保存一些图表的功能。当我执行到 geom_density 时,出现了错误消息。

Don't know how to automatically pick scale for object of type function. Defaulting to continuous
Error in data.frame(x = 1:5, y = c(44.43, 72.36, 177.17, 515.09, 1403.33 : 
arguments imply differing number of rows: 5, 0

经过一番研究,我发现我可能错过了组名和一些说明。但是,我无法确定这个错误。我列出了全部数据。

library(ggplot2)
dt <- read.table("/R/10G.csv", header=TRUE, sep="\t", na.strings="NA", dec=".", strip.white=TRUE)
dt$Thread <- factor(dt$Thread)  # factorize 'Thread'
library(plyr)
dd.mean <- ddply(dt, 'Thread', summarize, TPS = round(mean(TPS), 2), RT = round(mean(RT), 2))
m <- ggplot(dd.mean, aes(x=Thread,y=RT, group=seq)) 
m + geom_density(fill=NA)
m + geom_text(data=dd.mean, aes(x=Thread, label=TPS), vjust=-2) 

【问题讨论】:

  • 我们的计算机上没有文件“/R/10G.csv”,因此我们无法重现此示例。尝试使用dput(dt) 打印表格供我们导入
  • 谢谢。我会努力的。我已经在我的 Google Drive 上上传了 10G.csv 文件。你可以从link下载它
  • 使用 ggplot() 时,您正尝试通过 seq group 而我在您的数据中的任何地方都看不到 seq。当我删除 group=seq 时,我得到了一个情节。我不知道这是否是你所追求的,但它有效。
  • 我想画折线图,而不仅仅是点图。我可以画点图。但我不知道如何连接所有点到线。在某些搜索结果中,他们建议我需要对其进行分组。

标签: r ggplot2


【解决方案1】:

您应该更多地研究ggplot(),特别是geom_linegeom_point。我不认为geom_density 是您在这里寻找的。以下是您可以处理此任务的一种方法的示例,但实际上您可以采用数千种不同的方法,这就是为什么我建议您更多地查看文档,一些可能会有所帮助的链接:

注意:我没有分解dt$Thread

library(plyr)

dd.mean <- ddply(dt, 'Thread', summarize, TPS = round(mean(TPS), 2), RT = round(mean(RT), 2))

ggplot(dd.mean, aes(x = Thread, y = RT)) + 
        geom_line(size = 1, alpha = 0.3, colour = "red") + 
        geom_point(size = 3, alpha = 1, colour = "red") +  
        geom_text(x = dd.mean$Thread, label = dd.mean$TPS, vjust = -2) 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-23
    • 2023-03-30
    • 1970-01-01
    相关资源
    最近更新 更多