1

データリンク: https://www.dropbox.com/s/ql5jw7eng3plrso/GTAP_MacroValueChange.csv

コード:

    library(ggplot2)
    library(grid)

    #Upload data
    ccmacrosims2 <- read.csv(file = "F:/Purdue University/RA_Position/PhD_ResearchandDissert/PhD_Draft/GTAP-CGE/GTAP_NewAggDatabase/NewFiles/GTAP_MacroValueChange.csv", header=TRUE, sep=",", na.string="NA", dec=".", strip.white=TRUE)

    #Data manipulation for analysis
    ccmacrorsts2 <- as.data.frame(ccmacrosims2)
    ccmacrorsts2[6:10] <- sapply(ccmacrorsts2[6:10],as.numeric)
    ccmacrorsts2 <- droplevels(ccmacrorsts2)
    ccmacrorsts2 <- transform(ccmacrorsts2,region=factor(region,levels=unique(region)))

    #Selecting data of interest
    GDPDecomp1 <- melt(ccmacrorsts2[ccmacrorsts2$region %in% c("TUR","MAR"), ]) 
    GDPDecomp2 <- GDPDecomp1[GDPDecomp1$sres %in% c("AVERAGE"), ]
    GDPDecomp.f <- subset(GDPDecomp2, variable !="GDP")

    #Ploting
    GDPDecompPlot <- ggplot(data = GDPDecomp.f, aes(factor(region),value,  fill=variable))
    GDPDecompPlot + geom_bar(stat="identity", position="stack") + facet_wrap(~tradlib, scales="free_y") +
    theme(axis.text.x = element_text(colour = 'black', angle = 90, size = 12, hjust = 0.5, vjust = 0.5),axis.title.x=element_blank()) + 
    ylab("GDP (Change in $US million)") + theme(axis.text.y = element_text(colour = 'black', size = 12), axis.title.y = element_text(size = 12)) + 
    theme(strip.text.x = element_text(size = 12, hjust = 0.5, vjust = 0.5, face = 'bold'))

手元の問題:ggplotを使用した棒グラフ(以下を参照) ggplot_barplot

excel_barplot: excel_barplot_sample

プロットは実際にはデータの値を正しく表していないようです。私が探しているのは、excel_barplot_sampleから取得したもののようなものです。たとえば、ggplotの下のパネル「TRLIBEU」をExcelを使用した対応するパネルと比較すると、スタック時にggplotがデータ内の値を正しくキャプチャしていないことがはっきりとわかります。

不一致を修正する方法について何か助けはありますか?

前もって感謝します

4

1 に答える 1

4

バーを負の値でスタックする必要がある場合ggplot2は、より良い結果を得るために、2つの新しいデータフレームを作成する必要があります。1つは正の値用、もう1つは負の値用です。

GDPDecomp.f.pos<-GDPDecomp.f[GDPDecomp.f$value>0,]
GDPDecomp.f.neg<-GDPDecomp.f[GDPDecomp.f$value<0,]

次に、各データフレームを独自のgeom_bar()呼び出しで使用します。

ggplot()+
  geom_bar(data=GDPDecomp.f.pos,aes(x=factor(region),y=value,fill=variable),stat="identity")+
  geom_bar(data=GDPDecomp.f.neg,aes(x=factor(region),y=value,fill=variable),stat="identity")+
  facet_wrap(~tradlib, scales="free_y") + 
  theme(axis.text.x = element_text(colour = 'black', angle = 90, size = 12, hjust = 0.5, vjust = 0.5),axis.title.x=element_blank()) + 
  ylab("GDP (Change in $US million)") + theme(axis.text.y = element_text(colour = 'black', size = 12), axis.title.y = element_text(size = 12)) + 
  theme(strip.text.x = element_text(size = 12, hjust = 0.5, vjust = 0.5, face = 'bold'))

ここに画像の説明を入力してください

于 2013-01-22T19:33:18.380 に答える