如何使用晶格添加重叠直方图

use*_*303 5 r lattice

使用这个问题中的数据/sf/ask/1516417591/我想使用histogram函数在lattice同一个图上绘制三个直方图但是单独使我可以控制颜色并允许直方图重叠的半透明颜色.

但是,以下代码不起作用:

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 )
Run Code Online (Sandbox Code Playgroud)

因为直方图不会互相添加.我知道这适用hist于基本包中的函数,所以这是我的问题:

1)有没有办法在图中添加直方图histogram?2)如何为直方图的每个实例使直方图的区间宽度相同3)如何使直方图重叠的位置的颜色半透明?4)如何将直方图旋转90度,使其频率为水平轴?

mac*_*ksk 7

重叠的直方图有时可以理解和提供信息,但是,通常使用bwplot小提琴图更好:

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"))
     )
Run Code Online (Sandbox Code Playgroud)

R中的直方图与晶格重叠,Sepal.Length来自虹膜数据


42-*_*42- 1

点阵histogram函数不支持作为基础图形一部分的add=T。此外,在点阵中获得并排或重叠图的常用方法是使用“groups”参数,并且histogram again does not support groups. But the help page says thatDensityplot` 会绘制数据点的位置并接受 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 )
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如果你想要自己的颜色,你可以尝试:...,col=locs.col,...

添加材料到最初作为关于如何“旋转”密度图的评论:

一个将密度与直方图相结合的例子令人惊讶的是我得到了赞扬(或指责):

http://markmail.org/search/?q=list%3Aorg.r-project.r-help++密度图+switch+x+y#query:list%3Aorg.r-project.r-help%20% 20密度图%20开关%20x%20y+页:1+中:oop3shncxgx4mekc+状态:结果

--------文本------ 使用密度图而不是直方图作为包装函数,以便考虑其更极端的范围。当您这样做时,您确实会收到一个错误,指出“breaks”无效,但如果您阅读 ?histogram 页面,它表明设置 Breaks=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, ...)

} ) 
Run Code Online (Sandbox Code Playgroud)

--------引用材料结束-----

还有一个黑客示例(由 Dieter Menne 编写),展示了如何将被黑客入侵的面板拼接到网格调用中: http://markmail.org/search/ ?q=list%3Aorg.r-project.r-help++desiredplot+switch +x+y#query:list%3Aorg.r-project.r-help%20%20密度图%20switch%20x%20y+页:1+中:fyva5hrio6cn4fs2+状态:结果