如何使用R语言在ggplot2中绘制条形图

时间:2014-11-10 20:28:15

标签: r ggplot2

我有这样的数据集:

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")

1 个答案:

答案 0 :(得分: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

点图也可能有用。