2012-09-17 18 views
5

में लॉग-सामान्य घनत्व को सुपरमिस्पोज़ करना I ggplot में फ़ंक्शन को अतिरंजित करने का प्रयास करें, लेकिन मेरी गलती का पता नहीं लगा सकता है।ggplot और stat_function()

data <- data.frame(x=rt(10000, df=7)) 

ggplot(data=data, aes(x=x)) + geom_histogram(aes(y = ..density..)) + 
    stat_function(fun =dnorm, size=1, color='gray', args=list()) + 
    opts(title="Histogram of interest rate changes") + theme_bw() 

enter image description here

लेकिन जब मैं (एक लॉग-सामान्य घनत्व इस अपेक्षा के अनुरूप काम नहीं करता मिलाती करने की कोशिश या मुझे कहना चाहिए की उम्मीद के रूप में यह काम नहीं करता: इस उदाहरण एक अच्छा देख साजिश का उत्पादन ;):

data <- data.frame(x=rf(10000, df1=7, df2=120)) 

ggplot(data=data, aes(x=x)) + geom_histogram(aes(y = ..density..)) + 
stat_function(fun =dnorm, size=1, color='gray', args=list(log=TRUE)) + 
opts(title="Histogram of interest rate changes") + theme_bw() 

enter image description here

इसलिए यहाँ मेरी उम्मीद है कि सरल सवाल है: क्या मैं गलत यहाँ कर रहा हूँ? मुझे लगता है कि यह वास्तव में एक साधारण समस्या है, मुझे जवाब नहीं दिख रहा है - क्षमा करें।

+0

मैं कैसे एक desnsity नकारात्मक हो सकता नहीं मिलता है। –

+0

मुझे लगता है कि आपकी समस्या का हिस्सा 'लॉग = TRUE' –

+0

@LucianoSelzer निश्चित रूप से आप सही थे - और मैंने सोचा कि यह' लॉग = TRUE' तर्क के माध्यम से काम करेगा, लेकिन जैसा कि स्वेन ने दिखाया है वहां एक आसान तरीका है;) – Seb

उत्तर

7

उपयोग dlnorm, लॉग-सामान्य वितरण का घनत्व समारोह:

ggplot(data=data, aes(x=x)) + geom_histogram(aes(y = ..density..)) + 
    stat_function(fun = dlnorm, size=1, color='gray') + 
    opts(title="Histogram of interest rate changes") + theme_bw() 

enter image description here

+0

बस आपके उत्तर में भाग गया। मैं सराहना करता हूं, अगर आप मेरे संबंधित प्रश्न को देख सकते हैं (यदि आपने इसे नहीं देखा है): http://stackoverflow.com/q/25598485/2872891। धन्यवाद! –