使用小数据集在ggplot中绘制折线图

时间:2011-11-08 14:59:21

标签: r plot ggplot2

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

> 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将我的小数据集绘制为折线图?

1 个答案:

答案 0 :(得分:5)

我能够重现您的问题的唯一方法是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()