关于在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
)
答案 0 :(得分: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"))
似乎以与你所拥有的相反的顺序产生了传奇