【问题标题】:Plotting a line graph in ggplot with small dataset用小数据集在 ggplot 中绘制折线图
【发布时间】:2011-11-08 14:59:21
【问题描述】:

我计算了具有预定义同时连接数的服务器的最大响应时间的以下数据框:

> print(summary_data)    
    max     no_of_threads
    1.1801799   10
    1.0883594   20
    0.9556356   30
    0.9130625   40
    3.2130118   50
    1.1573432   60

当我使用 geom_bars() 用 ggplot 绘制这个数据框时,我得到了一个带有条形的图:

h <- ggplot(summary_data, aes(no_of_threads, max))
h + geom_bar()

但是,当我使用 geom_line() 在此图上创建一条线时,ggplot 会生成一个没有线的空图:

h + geom_line()

如何使用 ggplot 将我的小数据集绘制为折线图?

【问题讨论】:

  • 有趣。第一个出现错误,第二个出现预期图形。在 Mac 上,在 R64.app、R2.13.1、ggplot2_0.8.9 中。也许您的对象具有不同的结构?为什么不改为发布 dput(summary_data)?
  • @DWin - 接受的答案是正确的。摘要数据是从日志中计算出来的,列 no_of_threads 实际上是一个因素,而不是数字变量。这给了我这种行为。

标签: r plot ggplot2


【解决方案1】:

我能够重现您的问题的唯一方法是 no_of_threads 是否是一个因素,而不是一个数字或整数变量。尝试将其转换为数字:

summary_data$no_of_threads <- as.numeric(as.character(summary_data$no_of_threads))

编辑

我想我会补充一点(假设我对问题的原因是正确的)来回切换并不麻烦,真的。保持变量为数字,当你想使用geom_bar时,只需在那里进行强制:

ggplot(summary_data, aes(factor(no_of_threads), max)) + geom_bar()

【讨论】:

    猜你喜欢
    • 2016-04-06
    • 2020-03-25
    • 1970-01-01
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    • 2019-05-24
    • 2015-08-08
    • 1970-01-01
    相关资源
    最近更新 更多