【问题标题】:Vertical box-percentile plot with Lattice & panel.bpplot带有 Lattice 和 panel.bpplot 的垂直箱线图
【发布时间】:2011-12-24 14:22:24
【问题描述】:

我正在使用来自Hmisc (panel.bpplot) 和来自latticebwplot 的box-percentile 面板函数在R 中绘制box-percentile 图。

我有一个数值向量 (Length),并希望显示它在因子变量 (Month) 的各个级别上的分布。

这是一个假数据的例子:

例如,

set.seed(13)
Length<-sample(1:10, 1000, replace=TRUE)
Month<-sample(c("Apr","May","Jul","Aug","Sep","Nov"), 1000, replace=TRUE)

df<-cbind(Month, Length)
df<-as.data.frame(df)   
df$Month<-factor(df$Month, levels=c("Apr","May","Jul","Aug","Sep","Nov"))
df$Length<-as.numeric(df$Length)

#plot horizontal box-percentile plot; 
bwplot(Month~Length, data=df, panel=panel.bpplot)

这很好用。但我希望图是垂直Month 在 x 轴上,Length 在 y 轴上。 panel.bpplot 的文档说水平图使类别级别更加明显,但是,出于我的目的,我特别需要垂直图。有没有办法修改panel.bpplot 来做到这一点?

【问题讨论】:

  • 你试过horizontal这个说法吗?请参阅bwplot 文档。值可以是NULLTRUEFALSE
  • 我确实尝试过摆弄水平参数。将其设置为 FALSE 会导致 bwplot 将我的数字变量视为一个因子,并将我的因子变量视为数字,这不是预期的效果(尽管它确实会创建垂直框)。此外,只有在 bwplot 中调用常规面板函数时才会出现这种情况。当 panel=panel.bpplot 时,设置 Horizo​​ntal=FALSE 似乎对绘图没有影响。

标签: r panel lattice


【解决方案1】:

我从previous question 中获取了一些提示,然后将其与您的代码合并。似乎“技巧”是设置旋转网格:

require(grid)
grid.newpage()
pushViewport(viewport(angle = 90, name = "VP"))
print(
    bwplot(Month~Length, data=df, panel=panel.bpplot, draw.in = "VP"
    ),
    newpage=FALSE
)

导致:

【讨论】:

    猜你喜欢
    • 2019-10-17
    • 2013-07-20
    • 2017-07-21
    • 1970-01-01
    • 2015-07-26
    • 1970-01-01
    • 1970-01-01
    • 2020-08-09
    • 2022-01-08
    相关资源
    最近更新 更多