2012-03-22 10 views
21

बेस ग्राफिक्स में मेरी पसंदीदा चालों में से एक बिल डनलप से एक पिकअप है। एक बार साजिश में बार के ऊपर संख्यात्मक मान (या कोई मान) रखने में सक्षम होने के नाते (मैं इसका उपयोग नहीं करता लेकिन एक बार में थोड़ी देर में प्यार करता हूं)।सलाखों के ऊपर एनोटेट मान (ggplot faceted)

mtcars2 <- mtcars[order(-mtcars$mpg), ] 
par(cex.lab=1, cex.axis=.6, 
    mar=c(6.5, 3, 2, 2) + 0.1, xpd=NA) #shrink axis text and increas bot. mar. 

barX <- barplot(mtcars2$mpg,xlab="Cars", main="MPG of Cars", 
    ylab="", names=rownames(mtcars2), mgp=c(5,1,0), 
    ylim=c(0, 35), las=2, col=mtcars2$cyl) 

mtext(side=2, text="MPG", cex=1, padj=-2.5) 
text(cex=.5, x=barX, y=mtcars2$mpg+par("cxy")[2]/2, mtcars2$hp, xpd=TRUE) 

जो तुम देता है:

enter image description here

मैं ggplot में आयामी बार भूखंडों के साथ टिप्पणी की इसी तरह करने के लिए सक्षम होना चाहता हूँ। जाहिर है, मूल्यों को भी वही दो चर से होना होगा जिन्हें आपने प्लॉट करने के लिए पहना था ताकि आप उन्हें Ftable के साथ प्राप्त कर सकें। मैं नीचे ftable परिणाम (गैर शून्य मानों के लिए) लेना चाहता हूं और उन्हें अपने संबंधित सलाखों से ऊपर रखना चाहता हूं।

library(ggplot2) 
mtcars2 <- data.frame(id=1:nrow(mtcars), mtcars[, c(2, 8:11)]) 
mtcars2[, -1] <- lapply(mtcars2[, -1], as.factor) 

with(mtcars2, ftable(cyl, gear, am)) 

ggplot(mtcars2, aes(x=cyl)) + geom_bar() + 
    facet_grid(gear~am) 

यह मेरे लिए बहुत मुश्किल लगता है लेकिन शायद मुझे लगता है कि यह आसान होगा। इस समस्या के बारे में सोचने के लिए अग्रिम धन्यवाद।

+0

के साथ संदर्भित करना है, क्या यह प्रासंगिक है? http://stackoverflow.com/a/9185168/1036500 – Ben

+0

@ben मुझे लगता है कि आप समाधान पर हैं लेकिन मैं इसे 'facet_grid' –

+0

से कनेक्ट नहीं कर सकता हूं दिलचस्प बात यह है कि इस तरह के लेबलिंग को कुछ लोगों द्वारा माना जाता है अधिक भ्रमित प्रदर्शित करें और इससे बचा जाना चाहिए: http://stackoverflow.com/q/6644997/1036500 और http://stackoverflow.com/a/9318468/1036500 – Ben

उत्तर

23

क्या मैं यह सोचने में सही हूं कि आप प्रत्येक गैर-शून्य बार की गिनती (यानी ऊंचाई) चाहते हैं? यदि हां, तो आप प्राप्त कर सकते

ggplot(mtcars2, aes(x=cyl)) + 
    geom_bar() + 
    facet_grid(gear~am) + 
    stat_bin(geom="text", aes(label=..count.., vjust=-1)) 

कौन इस ग्राफ का उत्पादन के साथ (आप पता चलता है कि उच्चतम लेबल पाने के लिए कुछ फेरबदल करना पड़ सकता है) कि: enter image description here

count एक dataframe में एक नया चर रहा है stat_bin() द्वारा बनाया गया, यही कारण है कि आपको इसे ..count..