2016-03-22 10 views
0

Ich habe einen großen Datenrahmen. Hier sind Beispieldaten (erste Beobachtung).Wie füge ich Medianwerte als Text zu bwplot hinzu?

Year ComplaintCategory Days Loop 
    FY07-09 Service   1  Short 
    FY07-09 Service   22  Short 
    FY07-09 Product   15  Long 
    FY07-09 Product   6  Long 
    FY07-09 Product   6  Long 
    FY07-09 Service   3  Short 

Ich möchte nur Medianwerte auf bedingten Boxplot anzeigen. Medianwerte, die jedem Boxplot entsprechen, werden berechnet und in einem Vektor CalculatedMedian gespeichert. Die Medianwerte sind nachstehend angegeben.

12,0 26,0 13,5 17,0 20,0 48,0 35,0 21,0 NA NA NA NA 0,0 29,0 30,0 19,0

Wie kann ich in jeder Platte nur Medianwerte drucken und für boxplot an der Stelle des Median entspricht?

bwplot(Days ~ Loop | factor(Year), 
    ProductData, layout = c(8, 1), pch = rep("|", 2), 
    ylim = c(-10,100), scales=list(y = list(at=seq(0, 100,10))), 
    main=list(label="", cex=1.4), 
    ylab=list(label="Settlement Days", cex=1.3), 
    xlab=list(label="Loop", cex=1.3), 
par.settings = list(box.rectangle = list(col= "black",lwd=1.3,lty=1), 
         box.umbrella = list(col= "black",lwd=1.3,lty=1), 
         ylim = seq(0, 100, by=10), 
         plot.symbol = list(col='black')), 
    panel=function(x, y,...) { 
      panel.abline(v = x, h = seq(0, 100, by = 10), 
         col = "lightgrey",lty = 2,lwd=1)    
      panel.bwplot(x, y,fill=c('lemonchiffon1','lavenderblush1'),...) 
      panel.text(x = x, y =CalculatedMedian, labels = CalculatedMedian)} 

Unten ist der Ausgang des Code:

enter image description here

+2

Was sind die Objekte, die Sie beziehen sich im 'panel.text (x = x, y = CalculatedMedian, Etiketten = CalculatedMedian)'? Was ist x? Was ist CalculatedMedian? – InfiniteFlashChess

+0

[Meine letzte Antwort] (http://Stackoverflow.com/a/35756749/980833) auf eine ähnliche Frage sollte Ihnen einige hilfreiche Hinweise geben. –

+0

Meine alternde Antwort auf eine Anfrage, ein Tufte-Boxplot zu liefern, könnte eine Grundlage für weiteres Hacken bieten: http://stackoverflow.com/questions/6973394/functions-available-for-tufte-boxplots-in-r/6973803#6973803 –

Antwort

0

hier ein minimales Beispiel einige Testdaten. Wenn Sie eine Lösung mit Ihren Originaldaten wünschen, geben Sie bitte ein reproduzierbares Beispiel an.

Hier erstellen wir einen Vektor von Medianen im Aufruf und plotten sie dann mit den Koordinaten aus den Medianen.

dd <- data.frame(
    x = rnorm(100), 
    ind = as.factor(rbinom(100, 3, 1/3)) 
) 

bwplot(x ~ ind, data = dd, md = tapply(dd$x, dd$ind, median), 
     panel = function(x, y, md, ...) { 
     panel.bwplot(x, y, ...) 
     panel.text(x = 1:4, y = md, labels = round(md, 2), pos = 3) 
     }) 

Imgur