2014-11-10 2 views
-2

У меня есть набор данных, как это:Как построить бар-участок в ggplot2 с помощью R-языка

data  which repticker 
40.87000 actual  603126 
38.36000 actual  603168 
15.04000 actual  603188 
14.07000 actual  603306 
7.42000  actual  603328 
58.84818 model.pred 603126 
41.74658 model.pred 603168 
40.30288 model.pred 603188 
28.19353 model.pred 603306 
60.13398 model.pred 603328 

Я хочу, чтобы построить результат, как этот:

enter image description here

Мой код здесь, но это всего лишь 3 запаса.

ggplot(dd, aes(x=repticker, y=data, fill=which)) + 
    geom_bar(stat = "identity", width=0.5, position="dodge", colour="black") + 
    scale_fill_brewer(palette="Pastel1") 
+0

@ TylerRinker, извините, я просто изменился. –

ответ

1

Я думаю, это потому, что repticker числовой и вы хотите рассматривать как фактор. Так обернуть его as.factor следующим образом:

dd <- read.table(text="data  which repticker 
40.87000 actual  603126 
38.36000 actual  603168 
15.04000 actual  603188 
14.07000 actual  603306 
7.42000  actual  603328 
58.84818 model.pred 603126 
41.74658 model.pred 603168 
40.30288 model.pred 603188 
28.19353 model.pred 603306 
60.13398 model.pred 603328", header=TRUE) 

ggplot(dd, aes(x=as.factor(repticker), y=data, fill=which)) + 
    geom_bar(stat = "identity", width=0.5, position="dodge", colour="black") + 
    scale_fill_brewer(palette="Pastel1") 

enter image description here

С моей точки зрения, это легче для просмотра/сравнения (как я предполагаю, что это ваша цель) в качестве линии GEOM следующим образом:

ggplot(dd, aes(x=as.factor(repticker), y=data, color=which, group=which)) + 
    geom_line(size=1) 

enter image description here

dotplot может быть полезен также.

+0

Вам, вероятно, нужно взять 'width', чтобы полностью соответствовать желаемому результату –

+0

спасибо большое! –

+0

@DavidArenburg Согласовано, но это было частью исходного кода OP, и я предположил, что они хотели его там. –