向空白ggplot2折线图添加自定义图例

llewmills

我正在尝试为纵向数据集中的不同组的原型个体创建固定效果的ggplot2图(标明种族和受教育年限对工资增长的影响)。我没有使用数据集本身,而是尝试根据混合效应模型的截距和斜率系数创建线形图。因此,我创建了一个空白框架,并向其添加了ablines。但是,我想在图例中添加说明这些线条的图例。这是我用来创建情节的代码。

df <- data.frame() 
fixef.c <- list(intercept0 = 1.72, slope0 = 0.04, intercept1 = 0.038, slope1 = -0.016) 
ggplot(df) + xlim(0, 12) + ylim(1.6, 2.4) + 
  geom_abline(intercept = fixef.c[[1]], slope = fixef.c[[2]]) +
  geom_abline(intercept = fixef.c[[1]] + fixef.c[[3]]*3, slope = fixef.c[[2]], linetype = 2) +
  geom_abline(intercept = fixef.c[[1]], slope = fixef.c[[2]] + fixef.c[[4]], linetype = 3) +
  geom_abline(intercept = fixef.c[[1]] +  fixef.c[[3]]*3, slope = fixef.c[[4]] + fixef.c[[2]], linetype = 4) +
  xlab("Log Wages") +
  ylab("Years Experience")

我需要知道如何在此图上添加自定义图例来解释线条。理想情况下,我希望将图例放置在相同的位置,并使用与使用基础图形包创建的下图相似的标签。(注意:我尝试添加show.legend = TRUE到每个Abline函数中,但没有用。

exper.seq <- seq(0, 12)
x.w9 <- fixef.c[[1]] + fixef.c[[2]]*exper.seq
x.w12 <-  fixef.c[[1]] + fixef.c[[2]]*exper.seq + fixef.c[[3]]*3
x.b9 <- fixef.c[[1]] + fixef.c[[2]]*exper.seq + fixef.c[[4]]*exper.seq
x.b12 <- fixef.c[[1]] + fixef.c[[2]]*exper.seq + fixef.c[[3]]*3 + 
         fixef.c[[4]]*exper.seq
plot(exper.seq, x.w9, ylim=c(1.6, 2.4), ylab="LNW.hat", xlab="EXPER", type="l", lwd=2)
lines(exper.seq, x.w12, lty=3)
lines(exper.seq, x.b9, lty=4, lwd=2)
lines(exper.seq, x.b12, lty=5)
legend(0, 2.4, c("9th grade, White/Latino", "9th grade, Black", 
       "12th grade, White/Latino", "12th grade, Black"), lty=c(1, 4, 3, 5))
罗曼·卢斯特里克(Roman Lustrik)

如果您可以允许创建一个包含截距和坡度以及分组的对象,那么这是一项相当简单的任务。

xy <- as.data.frame(
  rbind(line1 = c(intercept = fixef.c[[1]], slope = fixef.c[[2]]),
      line2 = c(intercept = fixef.c[[1]] + fixef.c[[3]]*3, slope = fixef.c[[2]]),
      line3 = c(fixef.c[[1]], slope = fixef.c[[2]] + fixef.c[[4]]),
      line4 = c(fixef.c[[1]] +  fixef.c[[3]]*3, slope = fixef.c[[4]] + fixef.c[[2]]))
)
xy$design <- rownames(xy)

ggplot() + 
  xlim(0, 12) + ylim(1.6, 2.4) +
  geom_abline(data = xy, aes(intercept = intercept, slope = slope, linetype = design))

您还可以修改哪些线型属于哪个级别。

scale_linetype_manual(values = c(line1 = "solid", line2 = "dashed", line3 = "dotted", line4 = "dotdash")) +

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用ggplot2构造折线图

来自分类Dev

如何在D3折线图中自定义色阶?

来自分类Dev

自定义ExtJS折线图系列

来自分类Dev

使用自定义线扩展折线图

来自分类Dev

折线图自定义X值访问器

来自分类Dev

在ggplot2中添加具有自定义图例的点和线层

来自分类Dev

R-在ggplot2中自定义图例以添加geom_vline()组件

来自分类Dev

如何为Google折线图/ Google折线图图例操作编写自己的自定义图例

来自分类Dev

向空白ggplot2折线图添加自定义图例

来自分类Dev

Google Graphs:无法自定义折线图的图例位置和chartArea

来自分类Dev

使用ggplot向多个折线图添加图例

来自分类Dev

使用ggplot将图例添加到单个折线图中

来自分类Dev

使用ggplot2创建多个折线图

来自分类Dev

R ggplot2折线图在我不需要时添加填充

来自分类Dev

如何使用ggplot2编辑折线图的值?

来自分类Dev

在ggplot2中创建自定义图例

来自分类Dev

使用ggplot2将标签添加到折线图中

来自分类Dev

Altair:具有图例和自定义颜色的分层折线图

来自分类Dev

在ggplot2中绘制折线图

来自分类Dev

JFree折线图中的自定义系列形状

来自分类Dev

折线图自定义X值访问器

来自分类Dev

Highcharts折线图不遵守图例自定义

来自分类Dev

如何在Shield UI JavaScript折线图中添加自定义标签

来自分类Dev

自定义剑道折线图

来自分类Dev

R中折线图ggplot2的手动图例标签

来自分类Dev

日期格式 Ggplot2 折线图 R

来自分类Dev

使用自定义 X 值绘制折线图

来自分类Dev

自定义图例形状和大小 ggplot2

来自分类Dev

自定义图例顺序 ggbiplot,基于 ggplot2