Sto lavorando a evitare l'eccessivo affollamento delle etichette nel seguente grafico:evitando sovraffollamento delle etichette in r grafici
set.seed(123)
position <- c(rep (0,5), rnorm (5,1,0.1), rnorm (10, 3,0.1), rnorm (3, 4, 0.2), 5, rep(7,5), rnorm (3, 8,2), rnorm (10,9,0.5),
rep (0,5), rnorm (5,1,0.1), rnorm (10, 3,0.1), rnorm (3, 4, 0.2), 5, rep(7,5), rnorm (3, 8,2), rnorm (10,9,0.5))
group <- c(rep (1, length (position)/2),rep (2, length (position)/2) )
mylab <- paste ("MR", 1:length (group), sep = "")
barheight <- 0.5
y.start <- c(group-barheight/2)
y.end <- c(group+barheight/2)
mydf <- data.frame (position, group, barheight, y.start, y.end, mylab)
plot(0,type="n",ylim=c(0,3),xlim=c(0,10),axes=F,ylab="",xlab="")
#Create two horizontal lines
require(fields)
yline(1,lwd=4)
yline(2,lwd=4)
#Create text for the lines
text(10,1.1,"Group 1",cex=0.7)
text(10,2.1,"Group 2",cex=0.7)
#Draw vertical bars
lng = length(position)/2
lg1 = lng+1
lg2 = lng*2
segments(mydf$position[1:lng],mydf$y.start[1:lng],y1=mydf$y.end[1:lng])
segments(mydf$position[lg1:lg2],mydf$y.start[lg1:lg2],y1=mydf$y.end[lg1:lg2])
text(mydf$position[1:lng],mydf$y.start[1:lng]+0.65, mydf$mylab[1:lng], srt = 90)
text(mydf$position[lg1:lg2],mydf$y.start[lg1:lg2]+0.65, mydf$mylab[lg1:lg2], srt = 90)
si possono vedere alcune aree sono affollate con le etichette - quando il valore x è lo stesso o simili. Voglio solo visualizzare solo un'etichetta (quando c'è più etichette nello stesso punto). Ad esempio,
mydf $ posizione [1: 5] sono tutti 0,
ma etichette corrispondenti mydf $ MyLab [1: 5] -
MR1 MR2 MR3 MR4 MR5
voglio solo mostrare il primo "MR1".
Analogamente i seguenti punti sono troppo vicini (diciamo la differenza di 0,35), dovrebbero essere considerati un singolo cluster e verrà visualizzata la prima etichetta. In questo modo sarei in grado di sbarazzarmi del sovraffollamento delle etichette. Come posso ottenerlo?
Non esiste una soluzione automatica a questi tipi di problemi.In un modo o nell'altro dovrai correggere questo "a mano": o con etichette hard coding per gruppi di linee chiuse, o omettendo tutte le etichette e aggiungendole successivamente con un editor di immagini. – joran
È possibile sottrarre la posizione dai dati di posizione i-1, quindi creare una soglia per creare un cluster. Quindi probabilmente visualizzare un'etichetta per cluster – jon