我正在使用Pen's Parade做具有不同收入分配的随机优势分析。我可以使用Pen
包中的ineq
函数绘制单个Pen's Parade,但是我需要进行视觉比较,并且我希望同一图像中有多行。我不知道如何从函数中提取值,所以我无法做到这一点。
我有以下可重复的示例:
set.seed(123)
x <- rnorm(100)
y <- rnorm(100, mean = 0.2)
library(ineq)
Pen(x)
Pen(y)
我得到以下图:
我想获得以下时间:
答案 0 :(得分:2)
您可以使用add = TRUE
:
set.seed(123)
x <- rnorm(100)
y <- rnorm(100, mean = 0.2)
library(ineq)
Pen(x); Pen(y, add = TRUE)
来自help("Pen")
:
添加逻辑。该地块应该添加到现有地块吗?
虽然M-M在评论中提到的解决方案是更通用的解决方案,但在这种特定情况下,它会产生繁忙的Y轴:
Pen(x)
par(new = TRUE)
Pen(y)
我将以这种方式归纳出有关绘制函数的建议:
add
参数,请使用它。par(new = TRUE)
技术正如M-M在评论中有帮助地提到的那样,如果您在第二个绘图上手动抑制Y轴,则它们的更一般的解决方案不会产生繁忙的Y轴:
Pen(x)
par(new = TRUE)
Pen(y, yaxt = "n")
答案 1 :(得分:1)
看着?ineq::Pen()
似乎像plot()
一样工作;因此,追随者会为您工作。
Pen(x)
Pen(y, add=T)
注意: 但是,add=T
会删除部分数据,因为第二个图的点超出了第一个图的极限。
使用par(new=T)
的更新:
使用par(new=T)
基本上意味着将两个地块相互叠加;因此,使它们具有相同的比例非常重要。我们可以通过设置相同的轴限制来实现。也就是说,在使用add=T
参数时,希望设置轴的限制以不丢失任何数据部分。这是重叠两个图的最佳实践。
Pen(x, ylim=c(0,38), xlim=c(0,1))
par(new=T)
Pen(y, col="red", ylim=c(0,38), xlim=c(0,1), yaxt='n', xaxt='n')
本质上,您可以使用add=T
做同样的事情。