2014-02-09 39 views
3

使用此問題中的數據https://stackoverflow.com/questions/21663108/coloring-points-on-a-lattice-plot-in-r我想要使用lattice中的histogram函數在同一個圖上分別繪製三個直方圖,以便我可以控制顏色並允許半色調,顏色直方圖重疊的透明顏色。如何使用格子添加重疊直方圖

但是,下面的代碼無法正常工作:

histogram(locs[locs.col=="darkblue"] , breaks=20, xlim=c(25,150),col="darkblue") 
histogram(locs[locs.col=="yellow"] , breeaks=20, xlim=c(25,150),col="yellow",add=T) # add doesn't work here 
histogram(locsy[locs.col=="red"] , breaks=20, xlim=c(25,150),col="red",add=T) 

因爲直方圖將不會被添加到海誓山盟。我知道這適用於基本包中的hist函數,所以這裏是我的問題:

1)有沒有一種方法將直方圖添加到與histogram的情節? 2)我怎樣才能使直方圖的箱子是直方圖的每個實例相同的寬度 3)如何使顏色半透明的直方圖重疊? 4)如何將直方圖旋轉90度,使頻率爲橫軸?

+0

重疊** **格圖,您可以用'as.layer()'從** ** laticeExtra包。(我實際上測試過,但重疊的直方圖 - 即使使用透明顏色 - 導致一個情節很難解釋,我拒絕發佈它!) –

回答

1

格子histogram函數不支持add = T,它是基礎圖形的一部分。此外,在格子中獲得並排或重疊圖的常用方法是使用「組」參數,並且密度圖也會繪製數據點的位置並接受alpha透明度參數:

df <- data.frame(locs=locs, locs.col=locs.col,dataset=dataset) 
densityplot(~locs, groups=locs.col,data=df , xlim=c(25,150), alpha=.5) 

enter image description here

如果你想自己的顏色,你可以嘗試:...,col=locs.col,...

要添加materioal什麼開始作爲有關如何「旋轉」的密度的情節評論:

整合與直方圖調用,令人驚訝的是我得到的信用(或怪)的密度的一個例子:

http://markmail.org/search/?q=list%3Aorg.r-project.r-help++densityplot+switch+x+y#query:list%3Aorg.r-project.r-help%20%20densityplot%20switch%20x%20y+page:1+mid:oop3shncxgx4mekc+state:results

--------文本------ 使用densityplot代替直方圖作爲包裹功能,因此它的更多極限範圍受到尊重。如果你這樣說'中斷'是無效的,那麼你會得到一個錯誤,但是如果你閱讀了'直方圖'頁面,它表明設置中斷= NULL可能會產生可接受的默認行爲,在這種情況下似乎如此:

densityplot(~x,data=foo,groups=grp, 
#prepanel=function(x,type,groups,...){???}, 
    panel=function(x,type,groups,...){ 
    panel.densityplot(x,groups=groups,...) 
    panel.histogram(x,col='transparent', breaks = NULL, ...) 

}) 

-------端引述材料-------

和黑客的例子(由Dieter Menne)示出了如何拼接被黑麪板成格子呼叫: http://markmail.org/search/?q=list%3Aorg.r-project.r-help++densityplot+switch+x+y#query:list%3Aorg.r-project.r-help%20%20densityplot%20switch%20x%20y+page:1+mid:fyva5hrio6cn4fs2+state:results

+0

謝謝。有關旋轉劇情的任何評論。無法弄清楚如何在格子中做到這一點。 – user3290303

+0

如果你輸入'panel.densityplot',你會得到一個函數,最後是對'panel.lines'的調用。通過將輸入切換到x和y很容易。如果你想讓地毯情節(沿y = 0的點抖動點)同樣被旋轉,你可能還需要破解'panel.rug'。如果我是爲了金錢或名譽而做這件事的話,我會搜索rhelp的檔案,看看Deepayan Sarkar(格子的作者)是否已經被要求去做。 –

4

重疊直方圖有時可以理解和提供信息,但是,它是我們ually更好地使用bwplotviolin plot,反正:

histogram(~Sepal.Length, 
    data = iris, 
    type = "p", 
    breaks = seq(4,8,by=0.2), 
    ylim = c(0,30), 
    groups = Species, 
    panel = function(...)panel.superpose(...,panel.groups=panel.histogram, 
          col=c("cyan","magenta","yellow"),alpha=0.4), 
    auto.key=list(columns=3,rectangles=FALSE, 
        col=c("cyan","magenta","yellow3")) 
    ) 

overlapping histograms in R with lattice, Sepal.Length from iris data

+0

這就是42-(和其他人)說的無法完成的。難以置信。這可能是目前網絡上此信息的唯一來源。 – Mars

相關問題