1

使用 mixtools 时出现曲线绘图问题

使用以下 R 代码

require(mixtools)
x <- c(rnorm(10000,8,2),rnorm(10000,18,5))
xMix <- normalmixEM(x, lambda=NULL, mu=NULL, sigma=NULL)
plot(xMix, which = 2, nclass=25)

我得到了一个很好的直方图,其中叠加了从模型估计的 2 条正态曲线。

问题在于默认颜色(即红色和绿色),我需要将其更改为黑色和灰色的出版物。

我认为这样做的一种方法是首先生成直方图

hist(xMix$x, freq=FALSE, nclass=25) 

然后使用“曲线”功能添加线条。

.......但我迷路了,无法解决

我将不胜感激任何指示或实际解决方案

谢谢

PS。请注意,使用 ggplot 可以解决此问题的另一种解决方法: 关于如何使用 ggplot2 绘制 mixEM 类型数据的任何建议, 但由于各种原因,我需要继续使用基本图形

4

2 回答 2

3

您还可以使用 mixtools 绘图功能中的 col2 参数直接编辑颜色

例如

plot(xMix, which = 2, nclass=25, col2=c("dimgrey","black"))
于 2018-07-12T10:06:10.853 回答
0

给这个问题更多的思考,我设法改写问题并以更直接的方式提出问题

在 R 图形的“曲线”函数中使用用户定义的函数

这提供了两个很好的解决方案,说明如何使用“曲线”函数绘制由混合建模产生的正态分布。

因此,总体答案是使用“hist”函数绘制原始数据的直方图,然后使用“curve”函数(包含 sdnorm 函数)绘制每个正态分布。这可以完全控制颜色(以及可能的任何其他图形参数)。

不要忘记——这是我获得 sdnorm 函数代码的地方——以及其他有用的见解

关于如何使用 ggplot2 绘制 mixEM 类型数据的任何建议

一如既往地感谢 StackOverflow 和提供此类有用建议的贡献者。

于 2016-04-03T11:34:40.657 回答