我想绘制类似于beanplot
或violin
绘图的绘图,但不是对称形状,我想在中心线的不同侧绘制两个不同的分布。像这篇文章中的图4一样[pdf] http://www.jstatsoft.org/v28/c01/paper。如何在R中使用网格图形绘制直方图?
我想在R
中使用grid
图形引擎。任何指针都会有用。我看了lattice
包和histogram
函数包,但这不是我想要做的。
任何帮助/指针表示赞赏。
我想绘制类似于beanplot
或violin
绘图的绘图,但不是对称形状,我想在中心线的不同侧绘制两个不同的分布。像这篇文章中的图4一样[pdf] http://www.jstatsoft.org/v28/c01/paper。如何在R中使用网格图形绘制直方图?
我想在R
中使用grid
图形引擎。任何指针都会有用。我看了lattice
包和histogram
函数包,但这不是我想要做的。
任何帮助/指针表示赞赏。
您可以通过对函数panel.violin
进行相当简单的修改,在Sarkar的晶格包中合理轻松地获得小提琴曲线图。该函数中有四行可在grid.polygon
调用中更改,以从“双面”密度绘图变为单面密度绘图。第一个require(lattice)
和require(grid)
。然后键入panel.violin
。我会告诉你的“水平”变化:
require(grid)
panel.violin2 <-
# snipped all the arguments and processing
grid.polygon(x = c(dx.list[[i]]),
# Notice I removed: ... ,rev(dx.list[[i]])
y = c(2*dy.list[[i]] ), default.units = "native",
# Removed: ... , -rev(dy.list[[i]])
name = trellis.grobname(identifier, type = "panel",
group = group), gp = gpar(fill = col, col = border,
lty = lty, lwd = lwd, alpha = alpha))
也是从别的{...}子句中的相应栏目中删除。现在你可以在帮助的例子运行(panel.violin)
bwplot(voice.part ~ height, singer,
panel = function(..., box.ratio) {
panel.violin2(..., col = "transparent",
varwidth = FALSE, box.ratio = box.ratio)
panel.bwplot(..., fill = NULL, box.ratio = .1)
})
如果你想对对方的密度,所有你需要做的是去除dx.list [[i]]和dy.list [[i]],并留在rev(dx.list[[i]])
和-rev(dy.list[[i]])
。
@BenBarnes它的第六页(第六页只有一个情节)。这确实是一个boxplot的选择。 – MattLBeck
@Mottrition,Ooohh。这是一个有趣的情节。啊,图4,不是第4页。 – BenBarnes
我不完全确定OP需要什么。从论文中可以清楚地看到,图形可以使用'beanplot'生成,甚至可以使用代码来实现。 – MattLBeck