我一直在和ggplot争吵。我正在尝试创建一个绘有三个变量的折线图 - 小树苗,中等树苗和大树苗。 X轴将是“平均树苗数量”,Y轴应为“鸟类物种丰富度”。
以下是摘录:
birdspp smallsaplings mediumsaplings largesaplings
95 5.044642857 2.384615385 1.30952381
97 3.482269504 1.873684211 1.390625
63 6.285714286 2 2.4
57 5.216216216 1.666666667 1.125
我的问题是,我不能为我的生活弄清楚如何在一张图上绘制所有三行!
我尝试了两种方法。传统的希望方式...
ggplot(data, aes(y=birdspp, x=saplings)) +
geom_line(aes(x = smallsaplings, colour = "blue"))+
geom_point(aes(x = smallsaplings, colour = "blue")) +
geom_line(aes(x = mediumsaplings, colour = "green")) +
geom_point(aes(x = mediumsaplings, colour = "green")) +
geom_line(aes(x = largesaplings, colour = "red")) +
geom_point(aes(x = largesaplings, colour = "red"))
which produces this monstrosity :(
并使用重塑库中的融合功能...
mdf <- melt(mdf, id.vars="Sapplings", value.name="value", variable.name="birdspp")
ggplot(data=mdf, aes(x=Sapplings, y=value, group = birdspp, colour = birdspp)) +
geom_line() +
geom_point( size=4, shape=21, fill="white")
道歉,如果错误显而易见,我是新手。
答案 0 :(得分:2)
这是一个经典的“从广到长”的问题。如果你先整理数据会更容易,因此它有一个具有树苗类型的列和另一个带有平均数的列。
library(dplyr)
library(tidyr)
df1 %>%
gather(sapling_type, mean_number, -birdspp)
现在您可以将其输入ggpplot
并通过树苗类型进行颜色处理。我不确定线路。也许先从积分开始。
df1 %>%
gather(sapling_type, mean_number, -birdspp) %>%
ggplot(aes(mean_number, birdspp)) + geom_point(aes(color = sapling_type))