簡體   English   中英

R 中的 geom_line() 添加自定義圖例

[英]Add customized legends to geom_line() in R

d_probe <- soread()
ggplot(d_probe) +
  geom_line(aes(x = identity, y = effect)) +
  geom_line(aes(x = identity, y = ULCI), linetype = "dotted") + 
  geom_line(aes(x = identity, y = LLCI), linetype = "dotted")

d_probe:

identity    effect        se         t         p      LLCI      ULCI
     2.0000   -0.8046    0.2984   -2.6965    0.0081   -1.3960   -0.2132
     2.1400   -0.7471    0.2768   -2.6993    0.0081   -1.2956   -0.1985
     2.2800   -0.6895    0.2554   -2.6997    0.0080   -1.1957   -0.1833
     2.4200   -0.6319    0.2344   -2.6959    0.0081   -1.0965   -0.1674
     2.5600   -0.5744    0.2139   -2.6855    0.0084   -0.9983   -0.1505
     2.7000   -0.5168    0.1940   -2.6643    0.0089   -0.9013   -0.1324
     2.8400   -0.4593    0.1749   -2.6257    0.0099   -0.8059   -0.1126
     2.9800   -0.4017    0.1570   -2.5590    0.0119   -0.7128   -0.0906
     3.1200   -0.3441    0.1406   -2.4475    0.0160   -0.6228   -0.0655
     3.2600   -0.2866    0.1264   -2.2668    0.0254   -0.5372   -0.0360
     3.4000   -0.2290    0.1152   -1.9875    0.0494   -0.4574   -0.0006
     3.4023   -0.2281    0.1151   -1.9820    0.0500   -0.4562    0.0000
     3.5400   -0.1715    0.1080   -1.5882    0.1151   -0.3854    0.0425
     3.6800   -0.1139    0.1054   -1.0804    0.2824   -0.3229    0.0951
     3.8200   -0.0563    0.1080   -0.5218    0.6028   -0.2703    0.1577
     3.9600    0.0012    0.1153    0.0105    0.9916   -0.2272    0.2296
     4.1000    0.0588    0.1265    0.4648    0.6430   -0.1919    0.3094
     4.2400    0.1163    0.1406    0.8272    0.4099   -0.1624    0.3951
     4.3800    0.1739    0.1570    1.1075    0.2705   -0.1373    0.4851
     4.5200    0.2315    0.1750    1.3230    0.1886   -0.1153    0.5782
     4.6600    0.2890    0.1940    1.4896    0.1392   -0.0955    0.6736
     4.8000    0.3466    0.2139    1.6201    0.1081   -0.0774    0.7706

如何為這三行添加自定義的圖例,讓讀者知道它們的含義? 示例圖例可以是:“這是第 1 行”、“這是第 2 行”和“這是第 3 行”。 謝謝!

這類問題通常與重塑數據有關。 格式應該是長格式,數據是寬格式。 請參閱這篇關於如何將數據從寬格式重塑為長格式的帖子

首先,基本的 plot。圖例將自動具有變量名稱,因為effectLLCIULCI現在在長格式變量name ,映射到l.netype

library(dplyr)
library(tidyr)
library(ggplot2)

g <- d_probe %>%
  pivot_longer(cols = c(effect, LLCI, ULCI)) %>%
  ggplot(aes(x = identity, y = value, linetype = name)) +
  geom_line()

現在,自定義線型。

lty <- c("solid", "dotted", "dotted")
g + scale_linetype_manual(values = lty)

在此處輸入圖像描述

要更改圖例,請使用參數labels ,省略 plot。

labs <- c("this is line 1", "this is line 2", "this is line 3")
g + scale_linetype_manual(labels = labs, values = lty)

編輯

為了在圖例行與其文本之間留出空間,請使用設置了legend.spacingtheme 在這種情況下應該是legend.spacing.x 左對齊文本也會使所有文本標簽的間距相等。

g + scale_linetype_manual(values = lty) +
  theme(
    legend.spacing.x = unit(0, "cm"),
    legend.text.align = 0
  )

暫無
暫無

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

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