簡體   English   中英

ggplot2在圖例中顯示的線型不正確

[英]Incorrectly displayed linetypes in the legend with ggplot2

我遵循此鏈接示例 ,因為我有一個相似的情況,我試圖在同一圖中繪制兩個數據框。 我只對更改其中一個數據框的線型感興趣,該數據框可在圖形中使用,但在圖例中無法正確顯示。

示例數據集:

set.seed(456)
n <- 20
dfr <- data.frame(
  id=rep(1:n, 2),
  group=rep(c("1","2"), each=n), value=c(rnorm(n), rnorm(n, sd=1.1))
)

df_95ci <- data.frame(y_values=c(-1,1)*qnorm(0.95)) 
df_99ci <- data.frame(y_values=c(-1,1)*qnorm(0.99))

require(ggplot2)

碼:

  ggplot(data=dfr, mapping=aes(x=id, y=value)) +
  geom_line(mapping=aes(colour=group)) +
  geom_hline(data= df_95ci, mapping=aes(yintercept=y_values, size= "95% CI"), colour = "orange", linetype="dotdash") +
  geom_hline(data= df_99ci, mapping=aes(yintercept=y_values, size= "99% CI"), colour = "darkred", linetype="dotted") +
  scale_color_hue("Group") +
  scale_size_manual(
    "CI horizontal line", values=rep(1,4),
    guide=guide_legend(override.aes = list(colour=c("orange", "darkred")))
  ) +
  scale_linetype_identity(guide="legend")

產量

如您所見,我有兩行具有不同的線型,但是它們在圖例中是相同的。

你想要這個嗎?

ggplot(data=dfr, mapping=aes(x=id, y=value)) +
    geom_line(mapping=aes(colour=group)) +
    geom_hline(data= df_95ci, mapping=aes(yintercept=y_values, linetype= "95% CI"), 
               colour = "orange", size = 1) +
    geom_hline(data= df_99ci, mapping=aes(yintercept=y_values, linetype= "99% CI"), 
               colour = "darkred", size = 1) +
    scale_linetype_manual(
        "CI horizontal line", values=c("95% CI" = 4, "99% CI" = 3),
        guide=guide_legend(override.aes = list(colour=c("orange", "darkred")))
    )

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM