我有以下数据框:
vector_builtin vector_loop vector_recursive
1 0.00 0.10 0.34
2 0.00 0.10 0.36
3 0.00 0.08 0.36
4 0.00 0.11 0.34
5 0.00 0.11 0.36
我想在折线图中显示三列。
我已将ggplot2导入R并且图表显示时没有数据或行。
代码:
library(ggplot2)
indexes <- row.names(df.new)
ggplot(df.new, aes(x=vector_recursive, y=indexes))
我想要的输出 图表显示折线图中的三个系列。
答案 0 :(得分:1)
确保您的数据格式为ggplot2
。在您的代码中,geom_line
希望您提供数据中的哪些列应与哪个问题相对应。下面我重新创建了您的数据,将来考虑使用dput
向其他人提供数据,这有助于解决您的具体问题。
df=data.frame(vector_builtin=c(0.00,0.00,0.00,0.00,0.00),
vector_loop=c(0.10,0.10,0.08,0.11,0.11),
vector_recursive=c(0.34,0.36,0.36,0.34,0.36))
但是,您没有指定x轴是什么,因此我们将创建一个包含该信息的新变量,例如:
df$x=1:5
现在,我建议将数据重新整形为长格式,ggplot2
首选。您也可以在此处使用其他答案并指定每个答案,但可以使用reshape2
的{{1}}函数。
melt
现在,当您正确识别要绘制的列的名称时,library(reshape2)
df.m = melt(df, id.vars="x")
将正确绘制数据:
ggplot2
答案 1 :(得分:0)
使用来自OP的ggplot2
和df的一个非常基本的例子可以是:
df <- read.table(text = "time vector_builtin vector_loop vector_recursive
1 0.00 0.10 0.34
2 0.00 0.10 0.36
3 0.00 0.08 0.36
4 0.00 0.11 0.34
5 0.00 0.11 0.36", header = T, stringsAsFactors = F)
p <- ggplot() +
geom_line(aes(time, vector_builtin, colour = "red"), data = df) +
geom_line(aes(time, vector_loop, colour = "green"), data = df) +
geom_line(aes(time, vector_recursive, colour = "blue"), data = df) +
labs(x="Time(s)", y="Value") + # Labels for axis
scale_color_manual("Data Types", values=c(red="red",green="green",blue="blue"),
labels=c("vector_builtin", "vector_loop", "vector_recursive" ))
print(p)