Как удалить дубликаты меток оси X в R - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь получить barplot, представляющий средний процент окраски (valores), сгруппированный по полу и размеру (class). Однако метки на оси X выглядят дублированными. Я хотел бы получить одну метку («50-55» для первого и второго столбцов вместе, «55-60» для третьего и четвертого столбцов вместе и т. Д.) Для каждого уровня class. Как я мог это сделать?

Вот мой код:

par(mar=c(7,4,4,2)+0.1)
class<-factor(coloration$clase.2,levels=c("50-55","55-60","60-65","65-70","70-75","75-80"))
sex<-factor(coloration$sexo,levels=c("M","H"))
valores<-coloration$perc.greenblue
graf<-barplot(tapply(valores,list(sex,class),mean),beside=T,axes=F,ylim=c(0,50),col=c(grey.colors(2)),axisnames=F ,xlab=("Sex and size"),ylab=("% mean coloration"),las=1)
axis(2,at=c(0,5,10,15,20,25,30,35,40,45,50),labels=c(0,5,10,15,20,25,30,35,40,45,50),las=1)
labs<-as.character(class)
text(graf,par("usr")[3]-0.25,srt=0,adj = c(0,2),labels=labs,xpd=T,cex=1)
legend(locator(1),c("Adult males","Adult females"),fill=c(grey.colors(2)),bty="n")

РЕДАКТИРОВАТЬ: вот некоторый воспроизводимый код:

structure(list(edad = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "ADU", class = "factor"), 
    sexo = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("H", "M"), class = "factor"), 
    clase.2 = structure(c(2L, 2L, 3L, 3L, 4L, 4L, 5L, 5L, 6L, 
    6L, 2L, 2L, 3L, 3L, 4L, 4L, 5L, 5L), .Label = c("50-55", 
    "55-60", "60-65", "65-70", "70-75", "75-80"), class = "factor"), 
    perc.greenblue = c(0.09, 0.32, 12.8, 94.32, 34.83, 0.04, 
    45.83, 12.34, 0.75, 34.82, 0.5, 0.05, 3.46, 0, 1.72, 0.07, 
    0.09, 0.2)), row.names = c(9L, 10L, 12L, 13L, 48L, 49L, 109L, 
110L, 194L, 195L, 263L, 264L, 266L, 267L, 332L, 333L, 408L, 409L
), class = "data.frame")
...