如何从 R 中的 fitdistrplus 包更改 denscomp 图中的线条粗细?
How do I change line thickness in denscomp plots from the fitdistrplus package in R?
我使用 R
中 fitdistrplus
包中的 denscomp
在我的数据直方图上绘制了三个密度。下面的代码运行完美,但我不知道如何使线条更粗。
denscomp(list(TryWeibull, TryGamma, TryLognormal), legendtext = plot.legend,
fitcol = c("indianred3","gray38", "darkblue"), fitlty = c("dashed", "longdash", "dotdash"),
xlab = "Age", ylab = "Proportion", main="")
fitcol
给出了正确的颜色,fitly
给出了正确的线条类型,但我无法计算出使线条变粗的命令。我有两个靠得很近的分布密度,但我未能使用 colour/line 类型差异清楚地识别它们。 .
我试图不强调 Weibull 并强调 gamma 和对数正态。比例是估计值,所以我试图适应一般形状,而不是精确值。
我在 denscomp
函数中看不到指定线宽的选项。我宁愿不使用 ggplot 选项,但如果需要可以切换到那个选项。我希望有一个我忽略的功能选项。
编辑添加:我在 GitHub 上将此作为功能请求提出,并且已在包中实现。
尽管此包的作者允许您指定多种线型 (fitlty
) 和线颜色 (fitcol
),但他们不允许您指定多种线宽。但由于 R 是开源的,您可以自由地以任何方式修改函数。
在 R 控制台键入以下内容:
fix(denscomp)
然后在fitcol
之后的函数中添加一个新的参数,叫做fitlwd
。
..., fitcol, fitlwd, addlegend = TRUE, ...
然后在第30行之后添加如下内容:
if (missing(fitlwd))
fitlwd <- 1
然后在第34行之后添加如下内容:
fitlwd <- rep(fitlwd, length.out = nft)
然后修改第136行如下:
col = fitcol[i], lwd=fitlwd[i], ...)
最后,修改第142行:
col = fitcol, lwd=fitlwd,
像以前一样保存并调用新函数,但现在指定 fitlwd
参数:
denscomp(..., fitlwd=c(1,3,3))
我有同样的问题并遵循了 Edward 的解决方案,这很棒并且我学到了很多东西,但事实证明你可以只使用 ggplot 来做到这一点。
denscomp(..., plotstyle = "ggplot") + geom_line(linetype = "dashed",size = 1))
我使用 R
中 fitdistrplus
包中的 denscomp
在我的数据直方图上绘制了三个密度。下面的代码运行完美,但我不知道如何使线条更粗。
denscomp(list(TryWeibull, TryGamma, TryLognormal), legendtext = plot.legend,
fitcol = c("indianred3","gray38", "darkblue"), fitlty = c("dashed", "longdash", "dotdash"),
xlab = "Age", ylab = "Proportion", main="")
fitcol
给出了正确的颜色,fitly
给出了正确的线条类型,但我无法计算出使线条变粗的命令。我有两个靠得很近的分布密度,但我未能使用 colour/line 类型差异清楚地识别它们。
我试图不强调 Weibull 并强调 gamma 和对数正态。比例是估计值,所以我试图适应一般形状,而不是精确值。
我在 denscomp
函数中看不到指定线宽的选项。我宁愿不使用 ggplot 选项,但如果需要可以切换到那个选项。我希望有一个我忽略的功能选项。
编辑添加:我在 GitHub 上将此作为功能请求提出,并且已在包中实现。
尽管此包的作者允许您指定多种线型 (fitlty
) 和线颜色 (fitcol
),但他们不允许您指定多种线宽。但由于 R 是开源的,您可以自由地以任何方式修改函数。
在 R 控制台键入以下内容:
fix(denscomp)
然后在fitcol
之后的函数中添加一个新的参数,叫做fitlwd
。
..., fitcol, fitlwd, addlegend = TRUE, ...
然后在第30行之后添加如下内容:
if (missing(fitlwd))
fitlwd <- 1
然后在第34行之后添加如下内容:
fitlwd <- rep(fitlwd, length.out = nft)
然后修改第136行如下:
col = fitcol[i], lwd=fitlwd[i], ...)
最后,修改第142行:
col = fitcol, lwd=fitlwd,
像以前一样保存并调用新函数,但现在指定 fitlwd
参数:
denscomp(..., fitlwd=c(1,3,3))
我有同样的问题并遵循了 Edward 的解决方案,这很棒并且我学到了很多东西,但事实证明你可以只使用 ggplot 来做到这一点。
denscomp(..., plotstyle = "ggplot") + geom_line(linetype = "dashed",size = 1))