Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 使用ggplot2将图例中的线宽与绘图中的线宽匹配_R_Ggplot2 - Fatal编程技术网

R 使用ggplot2将图例中的线宽与绘图中的线宽匹配

R 使用ggplot2将图例中的线宽与绘图中的线宽匹配,r,ggplot2,R,Ggplot2,这个问题是一个问题的后续。我想再次感谢答辩人花时间回答上一个问题。为了简洁起见,我将不重复前面问题的细节,因此请参考超链接查看数据集以重现问题 总之,我有一个绘图,包括三组根据“公式”列按颜色分组的点,以及八条使用线型和大小分组的非彩色线,后者分别映射到两个不同的分组变量(“Fa.IVIVC”和“Highlight”)。使用的命令在下面被复制,随后是结果图 > ggplot() + + geom_point(data = df, aes( + x = invitro, +

这个问题是一个问题的后续。我想再次感谢答辩人花时间回答上一个问题。为了简洁起见,我将不重复前面问题的细节,因此请参考超链接查看数据集以重现问题

总之,我有一个绘图,包括三组根据“公式”列按颜色分组的点,以及八条使用线型和大小分组的非彩色线,后者分别映射到两个不同的分组变量(“Fa.IVIVC”和“Highlight”)。使用的命令在下面被复制,随后是结果图

> ggplot() +
+   geom_point(data = df, aes(
+     x = invitro,
+     y = invivo,
+     colour = factor(Form, labels = c("Fast", "Medium", "Slow"))
+   )) +
+   geom_line(
+     data = line_data,
+     aes(x = invitro, y = Fabs, linetype = `Fa.IVIVC`, size = Highlight)
+   ) +
+   labs(title = "Plot", colour = "Formulation") +
+   scale_x_continuous(limits = c(0, 100)) +
+   scale_y_continuous(limits = c(0, 100)) +
+   guides(size = FALSE) +
+   scale_size_manual(values = c("TRUE" = 2, "FALSE" = 0.5)) +
+   theme(
+     panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
+     panel.background = element_blank(), axis.line = element_line(colour = "black")
+   )

请注意,上面的命令作用于一个数据帧,该数据帧被扩展为我使用dput()发布的原始数据帧

上一篇文章的全部目的是找出如何在一个繁忙的绘图中突出显示两条线。但是,除非图例也显示了指定厚度的相关线,否则该目标的清晰度会降低。我不想在情节中加入太多的图例,目前,图例“公式”和“Fa.IVIVC”似乎已经足够了所以,我真的希望变量“Highlight”=TRUE所在的线条的线宽显示在图例“Fa.IVIVC”中。如何做到这一点?


谢谢。

您可以在
scale\u size\u manual
中更手动地定义线宽。
我认为最好还是稍微修改图例键以删除灰色背景(使其与主题匹配),并使用
主题中的
图例.key.width
参数增加键的宽度(否则粗虚线的图例只显示一个点)


您可以在
scale\u size\u manual
中更手动地定义线宽。…
我认为最好还是稍微修改图例键以删除灰色背景(使其与主题匹配),并使用
主题中的
图例.key.width
参数增加键的宽度(否则粗虚线的图例只显示一个点)


可能重复?我遇到的问题是,八条线中的两条线绘制的厚度更大,并根据大小=高光分组。但是,后一个图例已关闭(使用辅助线(大小=FALSE)),以避免绘图上冗余图例的混乱。因此,我只想加厚与linetype=
Fa.IVIVC
关联的图例中的两行。您链接到的响应通过命令指南(color=guide\u legend(override.aes=list(size=3))应用较粗的行。你如何修改它,使之成为我想要识别的两行的条件?可能重复?我的问题是,这两条(八条线中的两条)线的绘制厚度更大,并根据大小=高光分组。但是,后一个图例已关闭(使用辅助线(大小=FALSE)),以避免绘图上冗余图例的混乱。因此,我只想加厚与linetype=
Fa.IVIVC
关联的图例中的两行。您链接到的响应通过命令指南(color=guide\u legend(override.aes=list(size=3))应用较粗的行。你如何修改它,使之成为我想要识别的两行的条件?这就是我要说的!干杯,伙计!我真的很感激。这就是我要说的!干杯,伙计!我真的很感激。
ggplot() +
    geom_point(data = df, aes(
        x = invitro,
        y = invivo,
        colour = factor(Form, labels = c("Fast", "Medium", "Slow"))
        )) +
    geom_line(
        data = line_data,
        aes(x = invitro, y = Fabs, linetype = `Fa.IVIVC`, size = `Fa.IVIVC`)
        ) +
    labs(title = "Plot", colour = "Formulation") +
    scale_x_continuous(limits = c(0, 100)) +
    scale_y_continuous(limits = c(0, 100)) +
    scale_size_manual(values = c("DWeibull" = 0.5, "Fa = Fd" = 2, 
                                 "Fa = m*Fd + c" = 0.5, "polyx2" = 0.5, "polyx3" = 0.5, 
                                 "powerlaw" = 2, "Sigmoid" = 0.5, "SWeibull" = 0.5, 
                                 "Time scale 1" = 0.5, "Time scale 2" = 0.5)) +
    theme(
        panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
        panel.background = element_blank(), axis.line = element_line(colour = "black"),
        legend.key = element_blank(), legend.key.width = unit(4,"line")
        )