2015-12-23 11 views
9

मेरे तालिका में निम्नलिखित संरचना के साथ data.combined है:आर ggplot - त्रुटि stat_bin निरंतर एक्स चर की आवश्यकता है

'data.frame': 1309 obs. of 12 variables: 
$ Survived: Factor w/ 3 levels "0","1","None": 1 2 2 2 1 1 1 1 2 2 ... 
$ Pclass : Factor w/ 3 levels "1","2","3": 3 1 3 1 3 3 1 3 3 2 ... 
$ Name : Factor w/ 1307 levels "Abbing, Mr. Anthony",..: 109 191 358 277 16 559 520 629 417 581 ... 
$ Sex  : num 2 1 1 1 2 2 2 2 1 1 ... 
$ Age  : num 22 38 26 35 35 NA 54 2 27 14 ... 
$ SibSp : int 1 1 0 1 0 0 0 3 0 1 ... 
$ Parch : int 0 0 0 0 0 0 0 1 2 0 ... 
$ Ticket : Factor w/ 929 levels "110152","110413",..: 524 597 670 50 473 276 86 396 345 133 ... 
$ Fare : num 7.25 71.28 7.92 53.1 8.05 ... 
$ Cabin : Factor w/ 187 levels "","A10","A14",..: 1 83 1 57 1 1 131 1 1 1 ... 
$ Embarked: Factor w/ 4 levels "","C","Q","S": 4 2 4 4 4 3 4 4 4 2 ... 
$ Title : Factor w/ 4 levels "Master.","Miss.",..: 3 3 2 3 3 3 3 1 3 3 ... 

मैं शीर्षक और सर्वाइव्ड के बीच के रिश्ते, Pclass द्वारा वर्गीकृत प्रतिबिंबित करने के लिए एक ग्राफ आकर्षित करने के लिए चाहते हैं। अगर मैं सांख्यिक में चर शीर्षक बदलने Error: StatBin requires a continuous x variable the x variable is discrete. Perhaps you want stat="count"?

:

ggplot(data.combined[1:891,], aes(x=Title, fill = Survived)) + 
    geom_histogram(binwidth = 0.5) + 
    facet_wrap(~Pclass) + 
    ggtitle ("Pclass") + 
    xlab("Title") + 
    ylab("Total count") + 
    labs(fill = "Survived") 

हालांकि इस त्रुटि में परिणाम है: मैं निम्नलिखित कोड का इस्तेमाल किया तो कोड काम करता है data.combined$Title <- as.numeric(data.combined$Title) लेकिन ग्राफ में लेबल भी सांख्यिक (नीचे) है। कृपया मुझे बताएं कि ऐसा क्यों होता है और इसे कैसे ठीक किया जाए। धन्यवाद।

बीटीडब्ल्यू, मै मैक एल कैपिटल पर आर 3.2.3 का उपयोग करता हूं।

ग्राफ़: श्री, मिस करने के बजाय, श्रीमती एक्स अक्ष संख्यात्मक मान 1,2,3,4

enter image description here

+0

एक [ पुनरुत्पादित उदाहरण] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) यहां बहुत अच्छा होगा। –

+0

संभावित रूप से ggplot का आपका संस्करण ('sessionInfo()' देखें), क्योंकि मेरे संस्करण (1.0.1) में कोई stat = "count" नहीं है। और क्या आपने 'stat = "गिनती की कोशिश की" जैसे त्रुटि संदेश कहता है (अपना' शीर्षक 'कारक के रूप में रखते हुए)? –

+0

धन्यवाद गणितीय.coffee, मैंने अभी अपने प्रश्न में कुछ और जानकारी अपडेट की है। मैं ggplot2_2.0.0 का उपयोग करता हूं, क्या यह ठीक है? –

उत्तर

11

योग अप ऊपर टिप्पणी से जवाब पता चलता है:

1 - geom_histogram(binwidth=0.5)geom_bar() के साथ बदलें। हालांकि इस तरह से बिनविड्थ अनुकूलन की अनुमति नहीं होगी।

2 - geom_bar() या geom_histogram(binwidth = 0.5) के बजाय इसे हल करेगा।

-1

जैसा कि ऊपर उपयोग geom_bar कहा() geom_histogram के बजाय, नमूना कोड नीचे दिए गए उल्लेख (मैं जन्म तिथि डेटा के लिए प्रत्येक माह के लिए अलग ग्राफ चाहता था):

ggplot(data = pf,aes(x=dob_day))+ 
geom_bar()+ 
scale_x_discrete(breaks = 1:31)+ 
facet_wrap(~dob_month,ncol = 3) 
0

graph

extractTitle <- function(Name) {  
Name <- as.character(Name) 

    if (length(grep("Miss.", Name)) > 0) { 
    return ("Miss.") 
    } else if (length(grep("Master.", Name)) > 0) { 
    return ("Master.") 
    } else if (length(grep("Mrs.", Name)) > 0) { 
    return ("Mrs.") 
    } else if (length(grep("Mr.", Name)) > 0) { 
    return ("Mr.") 
} else { 
    return ("Other") 
    } 
} 

titles <- NULL 

for (i in 1:nrow(data.combined)){ 
    titles <- c(titles, extractTitle(data.combined[i, "Name"])) 
} 

data.combined$title <- as.factor(titles) 

ggplot(data.combined[1:892,], aes(x = title, fill = Survived))+ 
     geom_bar(width = 0.5) + 
     facet_wrap("Pclass")+ 
     xlab("Pclass")+ 
     ylab("total count")+ 
     labs(fill = "Survived") 
संबंधित मुद्दे