我想生成累计百分比条形图,总计为100%。我已经弄清楚了如何将频率转换成图表上的百分比,但是我需要将图表折叠成一个条形。您可以在基本R中提供任何帮助。
barplot(prop.table(table(log$log1)), beside=FALSE, horiz = TRUE)
我希望图表中只有一个柱形加到100%。目前,我有4个酒吧。见下图:
我想要类似下图的内容,但是只有一个水平条。我可以自己弄清楚颜色部分,但不能弄清楚如何将上图中的4个条折叠成一个。
答案 0 :(得分:0)
如果您有数据框:
df <- data.frame(c(75, 7, 5, 13), c("u", "v", "x", "z"), c("x", "x", "x", "x"))
names(df) <- c("Value", "Name", "xvar")
ggplot(df, aes(x = xvar, y = Value, fill = Name, label = Value)) +
geom_bar(stat = "identity") +
geom_text(position = position_stack(vjust = 0.5)) +
theme(axis.title.x=element_blank(), axis.text.x=element_blank(),
axis.ticks.x=element_blank())
答案 1 :(得分:0)
如果您可以提供一些参考数据,将会很有帮助。
我认为您想要像this这样的东西:
代码在这里:
#Create data Randon data
set.seed(1124)
data=matrix(sample(1:30,4) , nrow=4)
colnames(data)=c("Values")
rownames(data)=c("2","3","3.5","4")
#create color palette:
library(RColorBrewer)
coul = brewer.pal(4, "Pastel2")
#Transform this data in %
data_percentage=apply(data, 2, function(x){x/sum(x,na.rm=T)})
# Make a stacked barplot
barplot(data_percentage, col=coul ,
horiz = TRUE, border="white", xlab="group",
legend.text = row.names(data_percentage))