2012-09-17 9 views
5

मैं ggplot2 में आर में एक साधारण घनत्व प्लॉट बनाने की कोशिश कर रहा हूं। यहां मेरा कोड है जो बहुत अच्छा काम करता है।आर ggplot2 - सरल साजिश- लॉग अक्ष सीमा निर्दिष्ट नहीं कर सकता

d <- ggplot(result, aes(x=result$baseMeanA)) 
d + geom_density(colour="darkgreen", size=2, fill="darkgreen") + 
scale_x_log10() + scale_y_continuous(limits = c(0, 0.45)) 

समस्या यह है कि मैं x-axis को नकारात्मक संख्या में समायोजित नहीं कर सकता हूं।

scale_x_log10(limits= c(1, 10000)) 

अच्छा काम करता है, लेकिन

scale_x_log10(limits= c(-1, 10000)) 

बिल्कुल काम नहीं करता है! यह मुझे यह त्रुटि देता है:

Error in if (zero_range(range)) { : missing value where TRUE/FALSE needed

कृपया मदद करें!

+1

बस अनुमान लगाया जा रहा है, लेकिन शायद आप मूल पैमाने पर 0.1 से 10000 तक जाने की सीमा चाहते हैं (यानी लॉग 10 (x) -1 से 5 तक जाता है)? संभवतः आप लॉग 10 (x) को -1 से 10000 तक नहीं जाना चाहते हैं, क्योंकि ऊपरी सीमा 10^10000 (एक * बहुत * बड़ी मान पर होगी, क्योंकि अवलोकन ब्रह्मांड http में लगभग 10^80 परमाणु हैं : //en.wikipedia.org/wiki/Observable_universe ...) यदि मैं सही हूं, तो आप 'scale_x_log10 (सीमा = सी (0.1,1e5)) ' –

+0

चाहते हैं हाँ, मुझे लगता है कि अब मैं समझता हूं। मैं लॉग स्केल में नकारात्मक संख्याओं का उपयोग नहीं कर सकता .. धन्यवाद। अब मैं देखता हूं कि मुझे क्या करने की ज़रूरत है, मुझे परिणाम के लिए 1 या 0.1 की तरह छद्म जोड़ना होगा, ताकि यह दृष्टि से सही लगेगा, अन्यथा मैं सभी छोटी संख्याओं को किसी भी तरह खो दूंगा। – user1678000

उत्तर

2

जो आप करने की कोशिश कर रहे हैं वह ज्यादा समझ में नहीं आता है? ऋणात्मक संख्याओं का लॉग ऐसा नहीं है जिसे हम आर

R> log(-1) 
[1] NaN 
Warning message: 
In log(-1) : NaNs produced 

में प्रतिनिधित्व कर सकते हैं तो आर को धुरी को कहाँ आकर्षित करना चाहिए?

+0

हां, आप शायद सही हैं। मैं नहीं जानता था कि। मुझे लगता है कि अब मुझे पता है कि मेरी समस्या को हल करने के लिए मुझे अपने परिणाम में छद्म जोड़ना होगा ताकि मैं इसे देख सकूं। – user1678000

3

सीमा की सीमा आंशिक रूप से शून्य से नीचे होना चाहिए, तो आप log10-परिणत अपने चर और एक सतत पैमाने के लिए सीमा निर्दिष्ट कर सकते हैं:

ggplot(result, aes(x=log10(baseMeanA))) + 
    geom_density(colour="darkgreen", size=2, fill="darkgreen") + 
    scale_x_continuous(limits = c(-1, 10000) + 
    scale_y_continuous(limits = c(0, 0.45)) + 
1

ई^y नहीं नकारात्मक हो सकता है। घातीय स्थिर ई सकारात्मक है, और वाई सिर्फ एक एक्सपोनेंट है। और गणितीय परिभाषा द्वारा:

लॉग (x) = y < ==> एक्स = ई^y

यह ठीक यही कारण है कि आर लॉग गणना नहीं कर सकते (एक्स) अगर एक्स नकारात्मक है। यह सिर्फ गणित परिभाषा के खिलाफ चला जाता है।

मुझे उम्मीद है कि यह समझने में मदद करता है कि यह साजिश आपको परेशानी क्यों दे रही है।

संबंधित मुद्दे