gpt4 book ai didi

r - 如何为 R 中的因子绘制一条漂亮的洛伦兹曲线(ggplot?)

转载 作者:行者123 更新时间:2023-12-02 06:01:12 24 4
gpt4 key购买 nike

我的论文需要一个关于不同因素的不同分布的漂亮图。只有使用 package(ineq) 的标准方法才足够灵活。

但是,它不允许我在类中放置点(请参阅下面的评论)。重要的是要看到它们,最好是单独命名它们。这可能吗?

Distr1 <- c( A=137, B=499, C=311, D=173, E=219, F=81)
Distr2 <- c( G=123, H=400, I=250, J=16)
Distr3 <- c( K=145, L=600, M=120)

library(ineq)
Distr1 <- Lc(Distr1, n = rep(1,length(Distr1)), plot =F)
Distr2 <- Lc(Distr2, n = rep(1,length(Distr2)), plot =F)
Distr3 <- Lc(Distr3, n = rep(1,length(Distr3)), plot =F)

plot(Distr1,
col="black",
#type="b", # !is not working
lty=1,
lwd=3,
main="Lorenz Curve for My Distributions"
)

lines(Distr2, lty=2, lwd=3)
lines(Distr3, lty=3, lwd=3)

legend("topleft",
c("Distr1", "Distr2", "Distr3"),
lty=c(1,2,3),
lwd=3)

现在是这样的 enter image description here

最佳答案

如果你真的想使用ggplot,这里有一个简单的解决方案

# Compute the Lorenz curve Lc{ineq}
library(ineq)
Distr1 <- c( A=100, B=900, C=230, D=160, E=190, F=40, G=5,H=30,J=60, K=500)
Distr1 <- Lc(Distr1, n = rep(1,length(Distr1)), plot =F)

# create data.frame from LC
p <- Distr1[1]
L <- Distr1[2]
Distr1_df <- data.frame(p,L)


# plot
ggplot(data=Distr1_df) +
geom_point(aes(x=p, y=L)) +
geom_line(aes(x=p, y=L), color="#990000") +
scale_x_continuous(name="Cumulative share of X", limits=c(0,1)) +
scale_y_continuous(name="Cumulative share of Y", limits=c(0,1)) +
geom_abline()

enter image description here

关于r - 如何为 R 中的因子绘制一条漂亮的洛伦兹曲线(ggplot?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22679493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com