R如何使用ggplot绘制数据组

时间:2017-11-14 20:35:30

标签: r ggplot2

我有一个数据框,其中包含

等数据
year    range            count
2011    '0 to 500'       10
2011    '500 to 1000'    100
2012    '0 to 500'       12
2012    '500 to 1000'    50
2013    '0 to 500'       22
2013    '500 to 1000'    75

如何使用ggplot绘制x轴上的Range,计算y轴和每年的一行?

1 个答案:

答案 0 :(得分:0)

我不认为这是重复的,所以我提供了答案。您的数据结构需要对文本进行一些最小程度的处理(以提取和提取)以及可能是geom_segments而不是geom_line。

 s<-"year;range;count
 2011;'0 to 500';10
 2011;'500 to 1000';100
 2012;'0 to 500';12
 2012;'500 to 1000';50
 2013;'0 to 500';22
 2013;'500 to 1000';75"

 d<-read.delim(textConnection(s),header=TRUE,sep=";",strip.white=TRUE)
 d$range <- as.character(d$range) # remove factor
 d$range <- gsub("'","",d$range) # remove character
# strsplit returns a list, one per line, with two elements, here i'm getting
# each of those elements
d$from<-as.numeric(sapply(strsplit(d$range,' to '),function(X)X[1]))
d$to<-as.numeric(sapply(strsplit(d$range,' to '),function(X)X[2]))
d$year <- as.factor(d$year)
ggplot(d)+geom_segment(aes(x=from,xend=to,y=count,yend=count,col=year))

segments