dan*_*ani 21 r linechart ggplot2
我想在R中为这个数据集绘制多条线:(x =年,y =值)
School_ID Year Value
A 1998 5
B 1998 10
C 1999 15
A 2000 7
B 2005 15
Run Code Online (Sandbox Code Playgroud)
每所学校都有不同年份的数据.我希望每所学校都有一行.
csg*_*pie 28
让我们创建一些数据:
dd = data.frame(School_ID = c("A", "B", "C", "A", "B"),
Year = c(1998, 1998, 1999, 2000, 2005),
Value = c(5, 10, 15, 7, 15))
Run Code Online (Sandbox Code Playgroud)
然后在基础图形中创建一个图,我们创建一个组的初始图:
plot(dd$Year[dd$School_ID=="A"], dd$Value[dd$School_ID=="A"], type="b",
xlim=range(dd$Year), ylim=range(dd$Value))
Run Code Online (Sandbox Code Playgroud)
然后迭代添加行:
lines(dd$Year[dd$School_ID=="B"], dd$Value[dd$School_ID=="B"], col=2, type="b")
lines(dd$Year[dd$School_ID=="C"], dd$Value[dd$School_ID=="C"], col=3, type="b")
Run Code Online (Sandbox Code Playgroud)
我曾经用来type="b"表示点和线.
或者,使用ggplot2:
require(ggplot2)
##The values Year, Value, School_ID are
##inherited by the geoms
ggplot(dd, aes(Year, Value,colour=School_ID)) +
geom_line() +
geom_point()
Run Code Online (Sandbox Code Playgroud)
San*_*att 15
这是你想要的吗?您需要group = School_id告诉ggplot2为每所学校绘制单独的行.如果你想横轴,以incluude 1998年至2005年间的所有年份,然后取出factor在x = factor(year)
library(ggplot2)
df = read.table(text = "School_id Year Value
A 1998 5
B 1998 10
C 1999 15
A 2000 7
B 2005 15", sep = "", header = TRUE)
ggplot(data = df, aes(x = factor(Year), y = Value, color = School_id)) +
geom_line(aes(group = School_id)) + geom_point()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
86987 次 |
| 最近记录: |