2014-04-23 12 views
6

Patrząc na stronę funnel plot examples na stronie metafor - wydaje się, że istnieje sposób dodawania etykiet do wykresu ścieżki. Numer funnel plot page zawiera więcej szczegółów, ale nie zawiera przykładu dodawania etykiet.Tworzenie etykiet punktów wykresu ścieżki w metaforze

Przykład warunkiem:

library(metafor) 
png(filename="contour_enhanced_funnel_plot.png", 
    res=92, width=680, height=600, type="cairo") 
par(mar=c(5,4,1,2)) 
data(dat.bcg) 
res <- rma(ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg, measure="RR", 
      slab=paste(author, year, sep=", "), method="REML") 
funnel(res, level=c(90, 95, 99), shade=c("white", "gray", "darkgray"), refline=0) 
dev.off() 

zawiera pole etykiety, ale żaden nie są generowane w przykładzie. Jak mogę dodać etykiety do wykresu ścieżki?

Patrząc na here, wydaje się, że używanie pch może być alternatywą. Coś w rodzaju:

pch=paste(StudyName, StudyMeasure, sep=", ") 

, ale po prostu tworzy kropki jednej litery. .

Odpowiedz

4

Podczas przeglądania źródeł rma() i funnel.rma() (od wersji 1.9-2 metafory) nie mogę znaleźć żadnych konkretnych przepisów dotyczących umieszczania etykiet na wykresach ścieżek. Aby narysować własne etykiety, pozycje wydają się jednak zasadniczo odtwarzalne z obiektu, dzięki czemu można budować na tych liczbach bez konieczności ponownego obliczania wszystkiego. Takie podejście będzie oczywiście przynajmniej zawiasu od wybranej wartości yaxis -parameter, ale pojawia się domyślna sqrt(vi) ~ yi do pracy:

# ... 
funnel(res, level=c(90, 95, 99), shade=c("white", "gray", "darkgray"), refline=0) 
text(res$yi,sqrt(res$vi)+.016,res$slab,cex=.8) 

Czasami graficzny wygląd może wtedy oczywiście ssać jak nakładające się etykiety stają się nieczytelne.

Ewentualnie można próbować przypisać znaczenie pch -values ​​siebie (która normalnie powinna być liczbami całkowitymi) i spróbować wyjaśnić to z legendą:

alloc.factor <- factor(dat.bcg$alloc) 
stopifnot(res$k==length(alloc.factor)) 
funnel(res, level=c(90, 95, 99), shade=c("white", "gray", "darkgray"), refline=0, 
    pch=as.numeric(alloc.factor),lwd=2,cex=1.6) 
legend("topright",levels(alloc.factor),pch=1:3,pt.lwd=2,cex=1.6) 
Powiązane problemy