繁体   English   中英

图例中的线型失真

[英]Linetype in legend is distorted

我有一个图表,显示一些函数的内存使用情况,对于两个不同版本的函数。 现在,对于每个版本,我添加了一个虚线回归线。 所以我添加了一个图例(带有scale_linetype_manual ),它说明实线表示实际测量值,虚线表示回归线。 但是,图例中的虚线有问题,我无法找出导致此问题的原因:

图例中的虚线项目有问题。

当我使用虚线表示回归线而不是虚线时,问题就更加明显了。 那些较小的额外点不应该在图例中:

图例中的虚线项目有问题。

这是我的R脚本的相关部分:

ggplot(df, aes(x = x, y = heapUsage, color=Version)) +
  geom_line(aes(lty="data")) +
  geom_smooth(method='lm', se=TRUE, aes(lty="trend")) +
  scale_linetype_manual("Data", values=c("solid", "dotted"), breaks=c("data", "trend"), labels=c(" Measured  ", " Regression line")) +
  theme_bw() +
  theme(legend.position = "top") +
  guides(color=guide_legend(override.aes=list(fill=NA))) +
  guides(linetype=guide_legend(override.aes=list(fill=NA, color="black"))) +
  labs(x = "# Executed Operations") +
  labs(y = "Heap Usage in MB")

以下是整个情节的样子:

在此输入图像描述

问题来自geom_linegeom_smooth绘制一个叠加的图例。

您可以通过添加show.legend = FALSE来关闭geom_smooth的图例。 这是一个基于mtcars的可重现的示例。 如果省略show.legend = FALSE (或设置show.legend = TRUE ),您将看到图例中黑色和蓝色线条的叠加效果。

mtcars %>%
    select(mpg, disp, qsec) %>%
    gather(k, v, -mpg) %>%
    ggplot(aes(mpg, v, linetype = k)) +
    geom_smooth(method = "lm", se = T, show.legend = F) + 
    geom_line() +
    scale_linetype_manual("Data", values=c("solid", "dotted")) +
    theme_bw() +
    theme(legend.position = "top")

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM