2014-09-23 146 views
10

我試圖將多個密度繪圖與疊加繪製在一起。 ggplot和geom_density做這項工作,但密度堆疊在一起。 This is overlaid but not 3dR:如何:使用gplot和geom_density繪製3d密度圖

ggplot(all.complete, aes(x=humid_temp)) + 
    geom_density(aes(group=height, colour=height, fill=height.f, alpha=0.1)) + 
    guides(fill = guide_legend(override.aes = list(colour = NULL))) + 
    labs(main="Temperature by Height", x="Temperature", y="Density") 

類似的東西來,這是我想要實現: Density? with 3d overlay

在我的情況下,年會由高度取代。

謝謝!

+0

然後,我們可以看到一組垂直於時間軸垂直排列的輪廓圖嗎?不完全是。我不是我平時諷刺的自我。我認爲這是在萊迪思書中完成的,如圖14.3(但不是僞3D佈局)。 – 2014-09-23 00:49:52

+1

'ggplot'不能做3D圖形。如果你想要更低的圖形,你將不得不使用不同的軟件包。你可以嘗試一些方面,但是有那麼多可能無法提供信息的團體。 – jlhoward 2014-09-23 03:48:41

回答

2

我知道這老了,但其他人有這樣的問題,在這個帖子可能會絆倒,所以我我想我會添加一個最近發現的解決方案。有一個新軟件包只是爲了完成這種類型的可視化而創建的,它被稱爲ggjoy,並被設計爲與ggplot2系統一起工作。

所有的信息都可以在這裏找到:https://github.com/clauswilke/ggjoy

希望這能有所幫助!

+0

終於!謝謝,丹尼爾! – rafaelvalle 2017-07-18 20:40:18

2

正如@jlhoward所提到的,使用構面可以工作,或使用子圖,但是任一選項對於大量組都不能很好地擴展。考慮使用ecdf圖代替。

沒有在你的對象all.complete的數據,我不能重新創建你的情節,所以這裏是一個簡單的例子:

library(ggplot2) 

ggplot(iris, aes(x = Sepal.Length)) + 
    geom_density(aes(group = Species, 
        colour = Species, 
        fill = Species), 
       alpha = 0.2) 

density plot

對於超過幾團體,我我發現ecdf圖更容易解釋。作出類似的情節:

ggplot(iris, aes(x = Sepal.Length)) + 
    stat_ecdf(aes(color = Species)) 

ecdf plot

你可以在同一個情節幾十ECDF地塊,由於他們只是行,他們仍然分開到足以進行查看。密度圖或直方圖會太重疊,如你的例子。

這是博客貼子,讓我開始使用ECDF地塊,有更多關於他們的信息:http://allendowney.blogspot.com/2013/08/are-my-data-normal.html