0

关于在 R 中绘制堆积条形图的一个小问题。堆积条表示从底部到顶部的系列。但是图例总是从上到下显示系列。我认为这也是正确的ggplot2::geom_bar

有没有比rev(...)在其中使用两次更好的习语legend()barplot()如下:

exports <- data.frame(100*rbind('Americas'=runif(6),'Asia'=runif(6),'Other'=runif(6)))
colnames(exports) <- 2004:2009
series_we_want <- c(1,2,3)
barplot( as.matrix(exports[series_we_want,]), col=mycolors, ...)
legend(x="topleft", legend=rev(rownames(exports)[series_we_want]), col=rev(mycolors) ...)

(如果您省略其中一个rev()'s输出显然是没有意义的。似乎是添加单个标志yflip=TRUE或的增强案例yreverse=TRUE

4

1 回答 1

1

这是我使用您的代码得到的:

exports <- data.frame(100*rbind('Americas'=runif(6),'Asia'=runif(6),'Other'=runif(6)))
colnames(exports) <- 2004:2009
series_we_want <- c(1,2,3)
barplot( as.matrix(exports[series_we_want,]))
legend(x="topleft", legend=rev(rownames(exports)[series_we_want]))

在此处输入图像描述

尝试这个:

exports <- data.frame(100*rbind('Americas'=runif(6),'Asia'=runif(6),'Other'=runif(6)))
colnames(exports) <- 2004:2009
series_we_want <- c(1,2,3)
test_data<-as.matrix(exports[series_we_want])

 barplot( test_data, 
          legend.text=as.character(rev(rownames(exports)[series_we_want])), 
           args.legend = list(x="topleft"))

似乎以与您所拥有的相反的顺序产生图例

在此处输入图像描述

于 2012-05-10T02:12:05.733 回答