我正在尝试使用以下数据了解如何在绘图上设置多个系列。
Year <- c('1950', '1960', '1970', '1980')
Bus <- c(10,20,30,40)
Bus.sd <- c(1.1, 2.2, 3.3, 4.4)
Car <- c(20, 20, 40, 40)
Car.sd <- c(1.1, 2.2, 3.3, 4.4)
sample_data = data.frame(Year, Bus, Bus.sd, Car, Car.sd)
qplot(Year, Bus, data=sample_data, geom="pointrange",
ymin = Bus - Bus.sd/2, ymax = Bus + Bus.sd/2)
例如,使用上述数据,如何在不同颜色的同一图表上显示sample_data $ Bus和sample_data $ Car?
我尝试做的是:
p <- qplot(...)
然后
p <- p + qplot(...)
我复制了上一行,但这给了我一个错误。
我不完全了解AES的工作原理。我研究了ggplot2的例子,但是在这里很难理解相关的例子。或者,如果可以使用这些数据制作堆积条(geom_bar),我认为这也可以恰当地代表它。
答案 0 :(得分:0)
我希望这有帮助
gplot2最适合长格式的数据,如下所示:
Year score sd variable
1 1950 10 1.1 bus
2 1960 20 2.2 bus
3 1970 30 3.3 bus
4 1980 40 4.4 bus
5 1950 20 1.1 car
6 1960 20 2.2 car
7 1970 40 3.3 car
8 1980 40 4.4 car
这会将数据输入R:
data <- structure(list(Year = structure(c(1L, 2L, 3L, 4L, 1L, 2L, 3L,
4L), class = "factor", .Label = c("1950", "1960", "1970", "1980"
)), score = c(10, 20, 30, 40, 20, 20, 40, 40), sd = c(1.1, 2.2,
3.3, 4.4, 1.1, 2.2, 3.3, 4.4), variable = c("bus", "bus", "bus",
"bus", "car", "car", "car", "car")), .Names = c("Year", "score",
"sd", "variable"), row.names = c(NA, -8L), class = "data.frame")
这将成为情节,躲闪一切。你恰当地需要躲闪,因为你的数据是重叠的。您可以使用“W”值控制闪避量。
ggplot(data, aes(x=Year, y=score,col=variable))+
geom_point(position=position_dodge(w=0.2))+
geom_pointrange(aes(ymin=score-sd, ymax=score+sd,group=Year),position=position_dodge(w=0.2))