2012-05-30 3 views
0

Я совершенно новый для решетки, так что для меня это пробная версия и ошибка здесь.добавление этикеток на нижней части барчарта

Кажется, что настройка решетчатой ​​графики не может быть выполнена с помощью типичного r-понимания.

Я хотел бы добавить что-то вроде count(percentage) под каждым баром, который должен выглядеть как это, когда его сделали:

labelled bar chart

Как вы можете видеть, что мой код не маркировать баров вправо. Не все и не так. Первое должно быть 20 (0,1%).

Вот мой код:

grp1<-rep("grp1",20) 
grp2<-rep("grp2",40) 
grp3<-rep("grp3",60) 
grp4<-rep("grp4",80) 
grp <- c(grp1,grp2,grp3,grp4) 

barchart(grp,horizontal=F, 
    par.settings = list(
    plot.polygon = list(col = c("#1E4150","#28556E","#32698C","#3C7DAA"))), 
     panel = function(x, y, subscripts, ...){ 
      X <- table(x) 
      panel.barchart(x,y,...) 
      percentages <- paste(round(table(X)/length(X),2),"%",sep="") 
      lab1 <- paste("(",percentages, sep="") 
      lab1 <- paste(lab1,")", sep="") 
      abs <- table(X) 
      panel.text(1,-3, label = paste(abs,lab1), cex=0.8) 
     } 
) 

ответ

4

Я думаю, что, может быть, вы хотите сделать что-то больше, как это:

barchart(grp,horizontal=F, 
    par.settings = list(
    plot.polygon = list(col = c("#1E4150","#28556E","#32698C","#3C7DAA"))), 
     panel = function(x, y, subscripts, ...){ 
      panel.barchart(x,y,...) 
      percentages <- paste(round(y/sum(y),2),"%",sep="") 
      lab1 <- paste("(",percentages,")", sep="") 
      panel.text(x,-3, labels = paste(y,lab1), cex=0.8) 
     } 
) 

enter image description here

+0

THK U очень много! это было то, что ище искал! но если вы не возражаете, у меня возник вопрос. что точно выполняет функция (x, y, индексы)? уверен, что он передает некоторые значения, но какие именно значения? – Druss2k

Смежные вопросы