为 geom_vline 添加单独的图例

2023-11-28

我有这个数据框:

dput(df)
structure(list(X = c(337L, 338L, 339L, 340L, 341L, 342L, 343L, 
344L, 345L, 346L, 347L, 348L, 349L, 350L, 351L, 352L, 353L, 354L, 
355L, 356L, 357L, 358L, 359L, 360L, 361L, 362L, 363L, 364L, 365L, 
366L, 367L, 368L, 369L, 370L, 371L, 372L, 373L, 374L, 375L, 376L, 
377L, 378L, 379L, 380L, 381L, 382L, 383L, 384L, 385L, 386L, 387L, 
388L, 389L, 390L, 391L, 392L, 393L, 394L, 395L, 396L, 397L, 398L, 
399L, 400L, 401L, 402L, 403L, 404L, 405L, 406L, 407L, 408L, 409L, 
410L, 411L, 412L, 413L, 414L, 415L, 416L, 417L, 418L, 419L, 420L, 
421L, 422L, 423L, 424L, 425L, 426L, 427L, 428L, 429L, 430L, 431L, 
432L, 433L, 434L, 435L, 436L, 437L, 438L, 439L, 440L, 441L, 442L, 
443L, 444L, 445L, 446L, 447L, 448L, 449L, 450L, 451L, 452L, 453L, 
454L, 455L, 456L, 457L, 458L, 459L, 460L, 461L, 462L, 463L, 464L, 
465L, 466L, 467L, 468L, 469L, 470L, 471L, 472L, 473L, 474L, 475L, 
476L, 477L, 478L, 479L, 480L, 481L, 482L, 483L, 484L, 485L, 486L, 
487L, 488L, 489L, 490L, 491L, 492L, 493L, 494L, 495L, 496L, 497L, 
498L, 499L, 500L, 501L, 502L, 503L, 504L, 841L, 842L, 843L, 844L, 
845L, 846L, 847L, 848L, 849L, 850L, 851L, 852L, 853L, 854L, 855L, 
856L, 857L, 858L, 859L, 860L, 861L, 862L, 863L, 864L, 865L, 866L, 
867L, 868L, 869L, 870L, 871L, 872L, 873L, 874L, 875L, 876L, 877L, 
878L, 879L, 880L, 881L, 882L, 883L, 884L, 885L, 886L, 887L, 888L, 
889L, 890L, 891L, 892L, 893L, 894L, 895L, 896L, 897L, 898L, 899L, 
900L, 901L, 902L, 903L, 904L, 905L, 906L, 907L, 908L, 909L, 910L, 
911L, 912L, 913L, 914L, 915L, 916L, 917L, 918L, 919L, 920L, 921L, 
922L, 923L, 924L, 925L, 926L, 927L, 928L, 929L, 930L, 931L, 932L, 
933L, 934L, 935L, 936L, 937L, 938L, 939L, 940L, 941L, 942L, 943L, 
944L, 945L, 946L, 947L, 948L, 949L, 950L, 951L, 952L, 953L, 954L, 
955L, 956L, 957L, 958L, 959L, 960L, 961L, 962L, 963L, 964L, 965L, 
966L, 967L, 968L, 969L, 970L, 971L, 972L, 973L, 974L, 975L, 976L, 
977L, 978L, 979L, 980L, 981L, 982L, 983L, 984L, 985L, 986L, 987L, 
988L, 989L, 990L, 991L, 992L, 993L, 994L, 995L, 996L, 997L, 998L, 
999L, 1000L, 1001L, 1002L, 1003L, 1004L, 1005L, 1006L, 1007L, 
1008L, 1345L, 1346L, 1347L, 1348L, 1349L, 1350L, 1351L, 1352L, 
1353L, 1354L, 1355L, 1356L, 1357L, 1358L, 1359L, 1360L, 1361L, 
1362L, 1363L, 1364L, 1365L, 1366L, 1367L, 1368L, 1369L, 1370L, 
1371L, 1372L, 1373L, 1374L, 1375L, 1376L, 1377L, 1378L, 1379L, 
1380L, 1381L, 1382L, 1383L, 1384L, 1385L, 1386L, 1387L, 1388L, 
1389L, 1390L, 1391L, 1392L, 1393L, 1394L, 1395L, 1396L, 1397L, 
1398L, 1399L, 1400L, 1401L, 1402L, 1403L, 1404L, 1405L, 1406L, 
1407L, 1408L, 1409L, 1410L, 1411L, 1412L, 1413L, 1414L, 1415L, 
1416L, 1417L, 1418L, 1419L, 1420L, 1421L, 1422L, 1423L, 1424L, 
1425L, 1426L, 1427L, 1428L, 1429L, 1430L, 1431L, 1432L, 1433L, 
1434L, 1435L, 1436L, 1437L, 1438L, 1439L, 1440L, 1441L, 1442L, 
1443L, 1444L, 1445L, 1446L, 1447L, 1448L, 1449L, 1450L, 1451L, 
1452L, 1453L, 1454L, 1455L, 1456L, 1457L, 1458L, 1459L, 1460L, 
1461L, 1462L, 1463L, 1464L, 1465L, 1466L, 1467L, 1468L, 1469L, 
1470L, 1471L, 1472L, 1473L, 1474L, 1475L, 1476L, 1477L, 1478L, 
1479L, 1480L, 1481L, 1482L, 1483L, 1484L, 1485L, 1486L, 1487L, 
1488L, 1489L, 1490L, 1491L, 1492L, 1493L, 1494L, 1495L, 1496L, 
1497L, 1498L, 1499L, 1500L, 1501L, 1502L, 1503L, 1504L, 1505L, 
1506L, 1507L, 1508L, 1509L, 1510L, 1511L, 1512L), variable = structure(c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("As", "Cd_totale", "Cr_totale"
), class = "factor"), Area = structure(c(1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 6L, 1L, 6L, 
6L, 6L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 6L, 1L, 1L, 1L, 1L, 
1L, 2L, 2L, 2L, 2L, 3L, 3L, 1L, 1L, 1L, 1L, 4L, 4L, 5L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 6L, 6L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 
3L, 4L, 4L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 1L, 2L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 6L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 4L, 4L, 4L, 
4L, 1L, 1L, 1L, 5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 1L, 1L, 6L, 
6L, 1L, 6L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 5L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 5L, 5L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 6L, 6L, 
6L, 6L, 1L, 1L, 6L, 6L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 6L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 4L, 1L, 1L, 1L, 1L, 2L, 3L, 
3L, 3L, 3L, 1L, 1L, 1L, 1L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
1L, 1L, 1L, 4L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 4L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 6L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L), .Label = c("candiano", "Lido_Spina", "Porto_Corsini", 
"Punta_Marina", "Sito1", "Sito2"), class = "factor"), Campione = structure(c(40L, 
39L, 38L, 155L, 37L, 36L, 153L, 50L, 51L, 156L, 34L, 152L, 73L, 
154L, 75L, 76L, 157L, 41L, 42L, 43L, 44L, 45L, 35L, 47L, 48L, 
49L, 6L, 7L, 13L, 21L, 162L, 164L, 166L, 2L, 8L, 46L, 14L, 165L, 
167L, 23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 31L, 12L, 33L, 
150L, 151L, 111L, 74L, 3L, 9L, 15L, 18L, 4L, 10L, 158L, 159L, 
160L, 161L, 17L, 20L, 1L, 126L, 127L, 128L, 52L, 53L, 54L, 55L, 
56L, 57L, 58L, 22L, 163L, 139L, 140L, 141L, 142L, 143L, 144L, 
145L, 146L, 147L, 32L, 149L, 109L, 110L, 72L, 84L, 112L, 113L, 
114L, 115L, 116L, 77L, 16L, 19L, 5L, 11L, 82L, 83L, 61L, 85L, 
86L, 87L, 129L, 130L, 131L, 132L, 133L, 134L, 135L, 59L, 60L, 
123L, 62L, 62L, 63L, 64L, 65L, 66L, 67L, 68L, 148L, 108L, 70L, 
71L, 137L, 124L, 125L, 98L, 99L, 88L, 89L, 117L, 78L, 79L, 80L, 
81L, 122L, 91L, 138L, 97L, 90L, 136L, 100L, 101L, 94L, 102L, 
92L, 93L, 96L, 69L, 103L, 95L, 105L, 119L, 107L, 104L, 118L, 
120L, 121L, 106L, 106L, 109L, 105L, 110L, 108L, 121L, 122L, 102L, 
111L, 107L, 146L, 147L, 104L, 149L, 150L, 112L, 148L, 103L, 145L, 
120L, 117L, 4L, 10L, 123L, 18L, 125L, 126L, 127L, 124L, 129L, 
118L, 119L, 91L, 92L, 93L, 94L, 95L, 96L, 97L, 98L, 99L, 128L, 
101L, 60L, 61L, 62L, 23L, 24L, 25L, 26L, 27L, 28L, 151L, 113L, 
114L, 115L, 116L, 3L, 9L, 15L, 78L, 79L, 80L, 81L, 82L, 83L, 
84L, 85L, 86L, 87L, 130L, 131L, 132L, 133L, 134L, 135L, 136L, 
137L, 138L, 139L, 140L, 100L, 59L, 142L, 143L, 144L, 165L, 62L, 
63L, 64L, 65L, 66L, 67L, 152L, 153L, 154L, 155L, 156L, 157L, 
158L, 159L, 160L, 161L, 40L, 16L, 19L, 5L, 11L, 17L, 20L, 88L, 
89L, 90L, 13L, 21L, 162L, 164L, 166L, 2L, 8L, 12L, 14L, 141L, 
58L, 22L, 163L, 74L, 167L, 76L, 77L, 39L, 41L, 42L, 68L, 69L, 
70L, 71L, 72L, 73L, 7L, 75L, 49L, 50L, 51L, 52L, 53L, 43L, 44L, 
45L, 46L, 1L, 6L, 34L, 48L, 36L, 37L, 38L, 56L, 57L, 54L, 55L, 
29L, 35L, 32L, 33L, 30L, 31L, 47L, 66L, 64L, 62L, 67L, 103L, 
65L, 101L, 63L, 58L, 59L, 60L, 102L, 62L, 99L, 100L, 77L, 37L, 
38L, 39L, 40L, 41L, 42L, 43L, 44L, 61L, 48L, 49L, 50L, 51L, 52L, 
53L, 54L, 55L, 56L, 57L, 12L, 14L, 22L, 163L, 137L, 138L, 165L, 
167L, 23L, 24L, 25L, 68L, 69L, 70L, 71L, 72L, 73L, 74L, 75L, 
76L, 36L, 3L, 9L, 15L, 78L, 79L, 80L, 81L, 82L, 45L, 46L, 47L, 
86L, 87L, 88L, 89L, 90L, 91L, 92L, 93L, 94L, 8L, 135L, 136L, 
97L, 98L, 34L, 139L, 140L, 141L, 142L, 26L, 27L, 28L, 29L, 30L, 
31L, 32L, 33L, 17L, 35L, 154L, 155L, 156L, 18L, 4L, 10L, 16L, 
19L, 83L, 84L, 85L, 110L, 20L, 1L, 6L, 7L, 13L, 21L, 162L, 164L, 
166L, 95L, 96L, 109L, 11L, 111L, 112L, 113L, 114L, 115L, 143L, 
104L, 105L, 106L, 107L, 108L, 5L, 149L, 123L, 124L, 125L, 126L, 
127L, 157L, 158L, 159L, 160L, 161L, 121L, 134L, 153L, 150L, 151L, 
152L, 130L, 131L, 128L, 129L, 148L, 144L, 132L, 2L, 116L, 133L, 
122L, 146L, 147L, 120L, 145L, 118L, 119L, 117L), .Label = c("A_1", 
"A_2", "A_LS", "A_PC", "A_PM", "B_1", "B1_1", "B1_2", "B1_LS", 
"B1_PC", "B1_PM", "B_2", "B2_1", "B2_2", "B2_LS", "B2_PC", "B2_PM", 
"B_LS", "B_PC", "B_PM", "C_1", "C_2", "C386", "C387", "C388", 
"C389", "C390", "C391", "C392", "C393", "C394", "C395", "C396", 
"C397", "C398", "C399", "C400", "C401", "C402", "C403", "C404", 
"C405", "C406", "C407", "C408", "C409", "C410", "C411", "C412", 
"C413", "C414", "C415", "C416", "C417", "C418", "C419", "C420", 
"C421", "C422", "C423", "C424", "C425", "C426", "C427", "C428", 
"C429", "C430", "C431", "C432", "C433", "C434", "C435", "C436", 
"C437", "C438", "C439", "C440", "C441", "C442", "C443", "C444", 
"C445", "C446", "C447", "C448", "C449", "C450", "C451", "C452", 
"C453", "C454", "C455", "C456", "C457", "C458", "C459", "C460", 
"C461", "C462", "C463", "C464", "C465", "C466", "C467", "C468", 
"C469", "C470", "C471", "C472", "C473", "C474", "C475", "C476", 
"C477", "C478", "C479", "C480", "C481", "C482", "C483", "C484", 
"C485", "C486", "C487", "C488", "C489", "C490", "C491", "C492", 
"C493", "C494", "C495", "C496", "C497", "C498", "C499", "C500", 
"C501", "C502", "C503", "C504", "C505", "C506", "C507", "C508", 
"C509", "C510", "C511", "C512", "C513", "C514", "C515", "C516", 
"C517", "C518", "C519", "C520", "C521", "C522", "C523", "C524", 
"D_1", "D_2", "E_1", "E_2", "F_1", "F_2"), class = "factor"), 
    zona = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 
    2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 
    2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 
    1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 
    2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("campione", 
    "controllo"), class = "factor"), value = c(7.75, 7.83, 8, 
    9, 7.2, 7.5, 6.5, 6.4, 6.2, 8, 7.75, 7.6, 8.5, 7, 8.25, 8.25, 
    9, 7, 7.5, 8.17, 8.75, 6.67, 7.6, 5.83, 6.75, 5.6, 9.48, 
    8.35, 8.37, 7.5, 5.5, 6.45, 6.22, 9.3, 8.62, 7, 6, 6.17, 
    5.71, 9, 8.75, 13.5, 7.75, 7.6, 8.33, 8, 8.75, 7.4, 8, 8.17, 
    6.17, 7, 8.5, 8, 8.45, 7.82, 6, 8.7, 10.1, 8.64, 9, 8, 6.6, 
    6.6, 7, 7.66, 9.19, 7.67, 10, 8, 6.2, 6.2, 6.25, 7, 6, 6, 
    6.4, 7, 7.75, 8, 7, 7, 9, 9, 7.8, 7, 6.17, 7, 8.25, 7, 8.6, 
    6.6, 8.25, 8, 8, 6.5, 6.75, 6.2, 6, 8.25, 6, 8.38, 9.16, 
    7.7, 8, 8, 5.6, 7.67, 7.67, 6.33, 9, 7.5, 7.33, 6.8, 7, 7, 
    8, 6, 5.8, 7, 6, 6, 5.8, 7.25, 8.8, 8.5, 8, 8.25, 7.75, 8.4, 
    8.5, 8.25, 7.25, 6, 7, 7, 7, 6.33, 7, 7, 8, 7.25, 6.67, 7.33, 
    5, 6, 7, 8, 7, 8, 8, 8, 8, 8, 7.67, 8, 8, 8.25, 7, 9.5, 8, 
    6, 8.2, 7, 6.5, 7, 6, 7.8, 0.12, 0.28, 0.12, 0.1, 0.24, 0.1, 
    0.1, 0.12, 0.15, 0.22, 0.13, 0.1, 0.11, 0.1, 0.12, 0.13, 
    0.13, 0.11, 0.1, 0.1, 0.1, 0.15, 0.14, 0.1, 0.15, 0.1, 0.1, 
    0.1, 0.1, 0.1, 0.1, 0.1, 0.07, 0.09, 0.1, 0.1, 0.09, 0.1, 
    0.11, 0.1, 0.08, 0.1, 0.1, 0.11, 0.1, 0.1, 0.15, 0.13, 0.15, 
    0.1, 0.16, 0.13, 0.12, 0.1, 0.1, 0.12, 0.1, 0.14, 0.14, 0.025, 
    0.12, 0.12, 0.11, 0.12, 0.13, 0.13, 0.11, 0.09, 0.1, 0.08, 
    0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.2, 0.13, 0.1, 0.1, 0.1, 0.11, 
    0.09, 0.15, 0.1, 0.1, 0.1, 0.11, 0.09, 0.12, 0.12, 0.12, 
    0.12, 0.16, 0.1, 0.1, 0.1, 0.1, 0.2, 0.15, 0.1, 0.14, 0.12, 
    0.15, 0.025, 0.16, 0.18, 0.16, 0.025, 0.15, 0.08, 0.09, 0.1, 
    0.15, 0.17, 0.11, 0.05, 0.05, 0.12, 0.15, 0.12, 0.025, 0.1, 
    0.11, 0.17, 0.16, 0.12, 0.05, 0.12, 0.12, 0.13, 0.17, 0.13, 
    0.14, 0.12, 0.12, 0.11, 0.12, 0.13, 0.15, 0.12, 0.12, 0.1, 
    0.1, 0.12, 0.1, 0.13, 0.13, 0.18, 0.1, 0.14, 0.12, 0.1, 0.1, 
    0.18, 0.2, 0.15, 0.1, 0.11, 0.13, 0.11, 0.24, 0.16, 0.13, 
    0.15, 0.15, 0.22, 0.1, 85.75, 63.25, 43.6, 84.5, 84, 95.4, 
    98, 35.6, 79.6, 71.6, 73.2, 84, 54, 89, 99, 94.75, 70.6, 
    92.25, 84.83, 78.5, 70.17, 92.5, 94.67, 93.75, 75.2, 64.75, 
    66, 75.6, 82.4, 80.2, 78.8, 81, 79, 75.6, 79.2, 85.9, 57, 
    93.9, 97.9, 96.25, 84, 53.9, 56.1, 108.5, 111.75, 104.5, 
    78.25, 82.75, 87.25, 86.05, 85, 96, 102.25, 100.5, 100, 77, 
    84.3, 83.9, 52, 90.67, 85.75, 76.67, 86.33, 93.67, 70.5, 
    86.6, 77.67, 86.33, 74, 73.67, 86.67, 87.5, 72, 89.67, 93, 
    95, 93.5, 96, 88, 91, 86, 104.5, 90, 86.5, 85, 100.25, 81.25, 
    93.2, 109.75, 105, 104, 87.8, 99.75, 92.67, 47, 88.2, 73, 
    95, 94, 98.7, 100.4, 91.5, 63, 94.2, 89.33, 90.33, 83.67, 
    75.6, 86.8, 99.7, 90, 88.7, 88.4, 99.8, 76.4, 57.8, 52.5, 
    93, 91, 108, 91.5, 105, 98, 69.5, 79.75, 68.6, 103, 81, 90, 
    101.2, 102.6, 96.6, 100.8, 81, 90, 65, 79, 102.67, 102, 107, 
    107.5, 93, 70.2, 70.2, 67, 90.33, 71.5, 61.17, 64.6, 84.8, 
    87.5, 96.67, 76, 101, 100.75, 97.8, 77.4, 83.4, 79, 79, 55, 
    59.33, 98, 95.25, 82, 87, 70, 91), LCB_pelite = c(17, 17, 
    17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
    17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
    17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
    17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
    17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
    17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
    17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
    17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
    17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
    17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
    17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
    17, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 
    0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 
    0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 
    0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 
    0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 
    0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 
    0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 
    0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 
    0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 
    0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 
    0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 
    0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 
    0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 
    0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 
    0.2, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 
    50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 
    50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 
    50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 
    50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 
    50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 
    50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 
    50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 
    50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 
    50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 
    50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 
    50, 50, 50, 50, 50), LCB = c(25, 25, 25, 25, 25, 25, 25, 
    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 
    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 
    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 
    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 
    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 
    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 
    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 
    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 
    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 
    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 
    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0.35, 0.35, 0.35, 
    0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 
    0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 
    0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 
    0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 
    0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 
    0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 
    0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 
    0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 
    0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 
    0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 
    0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 
    0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 
    0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 
    0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 
    0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 
    0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 
    0.35, 0.35, 0.35, 0.35, 0.35, 100, 100, 100, 100, 100, 100, 
    100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 
    100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 
    100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 
    100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 
    100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 
    100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 
    100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 
    100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 
    100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 
    100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 
    100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 
    100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 
    100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 
    100, 100, 100, 100, 100, 100), LCL = c(32, 32, 32, 32, 32, 
    32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
    32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
    32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
    32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
    32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
    32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
    32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
    32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
    32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
    32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
    32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0.8, 
    0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 
    0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 
    0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 
    0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 
    0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 
    0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 
    0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 
    0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 
    0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 
    0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 
    0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 
    0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 
    0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 
    0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 360, 
    360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 
    360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 
    360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 
    360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 
    360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 
    360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 
    360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 
    360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 
    360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 
    360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 
    360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 
    360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 
    360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 
    360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360)), .Names = c("X", 
"variable", "Area", "Campione", "zona", "value", "LCB_pelite", 
"LCB", "LCL"), class = "data.frame", row.names = c(NA, -504L))

这就是我用来生成以下图的代码(使用旧数据,没有这些):

ggplot(df)+
  stat_ecdf(aes(x=value, color=Area))+
  geom_vline(aes(xintercept=LCB_pelite), size=2, color="red")

enter image description here

我想做的是在图例中添加对geom_vline.

换句话说,我想要两个图例:第一个是 ggplot 自动添加的图例,而第二个图例应该有另一个标题和符号geom_vline.

我还尝试执行以下黑客操作:

ggplot(df)+
    stat_ecdf(aes(x=value, color=Area))+
    geom_vline(aes(xintercept=LCB_pelite, color="Limit"), size=2)

结果如下:

enter image description here

但它有两个问题:第一个问题是 ggplot 随机选择的颜色,第二个问题是该符号位于旧图例内,而我需要它在单独的图例中。

我希望我说清楚了..

Thanks

EDIT

我对我的数据框做了一些“黑客”,现在它看起来像(ssedput从上面)。

然后我把它融化:

require("reshape2")
df_melt<-(melt(df))

我写了这段代码:

require("ggplot2")
ggplot(df, aes(x=value, color=zona, linetype = factor(LCB_pelite)))+
    stat_ecdf()+
    facet_wrap(~variable, scales="free_x" ) +
    geom_vline(aes(xintercept=LCB_pelite), color="red", linetype="dashed") +
#     geom_vline(aes(xintercept=LCB), color="orangered", linetype="dashed") +
#     geom_vline(aes(xintercept=LCL), color="blue", linetype="dashed") +
    scale_linetype(name = "Limit") +
    guides(linetype = guide_legend(override.aes = list(colour = "red")))

我现在需要的是:

  • 添加另外 2 个geom_vline(在上面的代码中注释)在图例中
  • 调整图例以使元素为(LCB_pelite、LCB、LCL 而不是 0.2、17 和 50)

ggplot 可以吗?

Thanks!


您可以添加一个linetype美学对ggplot调用,然后使用修复图例中的颜色guides / override.aes:

ggplot(df, aes(x = value, color = Area, linetype = factor(LCB_pelite))) +
  stat_ecdf() +
  geom_vline(aes(xintercept = LCB_pelite), color = "red") +
  scale_linetype(name = "Limit") +
  guides(linetype = guide_legend(override.aes = list(colour = "red")))

请注意其中的拼写override.aes: colour with u(由于某种原因,“颜色”在这里不起作用......)

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为 geom_vline 添加单独的图例 的相关文章

  • 如何在R中用随机数填充矩阵?

    expand grid i rexp 5 rate 0 1 它只创建一列 但有什么方法可以轻松地将其乘以 5 列吗 我的意思是 matlab 的做事方式 比如rand exp 0 1 10 20 创建一个指数分布随机数的矩阵 平均值为 0
  • 将表达式捕获为 R 中的函数体

    我正在尝试编写一个程序 该程序将表达式作为输入并返回一个以该表达式绑定作为其主体的函数 caller lt function expr params Function lt function params body env parent f
  • 如何解决这个错误--dbWriteTable()

    我成功连接到 MYSQL DB 并尝试将结果写回数据库 dbWriteTable con predicted min forecast min 其中 Forecast min 只是双精度向量 我收到此错误消息 函数 类 fdef mtabl
  • 传说在北卡罗来纳州地理地图上消失?

    我正在使用 R 编程语言 使用北卡罗来纳州的内置地图 我生成了 3 个随机变量 收入 孩子数量 体重 然后为此数据创建了地图 使用 传单 库 通过循环 library sf library mapview library leaflet l
  • 如果包已经加载,那么在函数中需要包会有什么影响?

    加入有没有什么不良影响library require函数内的语句会被频繁调用吗 所用的时间似乎可以忽略不计 但我每隔几分钟调用该函数 我想知道重复是否有任何缺点require calls 请注意 该功能只是个人实用程序 不被共享 即 我是唯
  • 添加图例到散点图

    这个问题已经被问到了 但我想找到一个更清晰的解决方案 给定 X 是 100x2 数据 标签是标签向量 从 1 到 9 我绘制散点图如下 pl scatter X 0 X 1 c labels pl show 如何仅用一行代码添加图例来解释颜
  • 只保留矩阵中某些列具有相同元素的行

    让我举个例子 假设我们有 3 个表 重点关注 N 列 Table 1 Table 2 Table 3 N Values N Values N Values 5 1 5 1 5 1 10 2 6 2 6 21 15 3 10 3 10 5 1
  • 通过在 R 中填充 NA - 使栅格达到相同程度

    我有几个具有不同几何形状 轮廓的裁剪栅格 具体而言 同一田地的几年的空间产量图 但范围有所不同 测量并不总是整个田地的整体 但在某些年份只是其中的一部分 我想计算这些地图的平均值并将它们组合成一个平均值栅格 然而 这确实意味着 假设 5 层
  • 将误差线添加到多条线上以在 R 中的绘图上显示标准差

    我有一个包含许多不同线条的图 我想为每条线上的每个点添加误差线 df lt matrix runif 25 5 5 plot 1 5 seq 0 1 1 4 type n mapply lines as data frame df col
  • 如何更改 ggplot2 中轴标签上的小数位数?

    具体来说 这是在facet grid 中 在谷歌上广泛搜索了类似的问题 但不清楚语法或它的去向 我想要的是 y 轴上的每个数字在小数点后都有两位数 即使尾随一位是 0 这是scale y continuous 或 element text
  • 有人可以解释一下这段代码吗?尤其是“函数x和[[x]]”的作用?

    这是 R 中的代码 我无法理解其作用function x and qdata x 在这行代码中 有人能给我详细解释一下吗 这段代码不是我写的 谢谢 outs lapply names qdata 12 35 function x hist
  • 多个变量的分组描述性统计

    给定数据框 df Hup Hop testA testB Y Hi 1 1 N Lo 2 2 Y Mi 3 3 N No 4 4 Y Hi 5 5 N Lo 6 6 Y Mi 7 7 N No 8 8 Y Hi 9 9 N Lo 10 10
  • 按月/年间隔汇总每日数据

    我并不经常需要在 R 中处理日期 但我认为这相当简单 我有一列代表数据框中的日期 我只想创建一个新的数据框 使用日期按月 年总结第二列 最好的方法是什么 我想要第二个数据框 这样我就可以将它提供给绘图 您能提供的任何帮助将不胜感激 编辑 供
  • 在 R 中将列表列表转换为数据帧:Tidyverse 方式

    我正在寻找将列表列表转换为 R 中的数据帧的 Tidyverse 方法 Create a list of lists a lt seq 1 10 1 b lt seq 1 20 2 Function to calculate the sum
  • R Markdown / Bookdown 中的水平规则导致错误

    突然 我在 Markdown Bookdown 中编织为 PDF 时遇到错误 我的系统没有任何变化 该错误是由 水平规则 引起的 即 Markdown 中的任意位置 或 尽管两侧都有行空格 我提供了一个简单的违规示例 它不会合并成 PDF
  • 在ggplot2中添加边框或背景以缩放图例guide_colorbar

    我在 ggplot 图中有一个从白色到红色的颜色条 并且白色边框在白色背景上不太明显 有没有办法对图例中的刻度线进行不同的着色或在渐变比例周围添加边框 这是一个最小的例子 df lt data frame x lt rnorm 10 y l
  • 在 ggplot2 中,如何将堆叠直方图中的小值条形组合在一起?

    示例数据 tmp df lt data frame a rnorm 100 0 1 b rnorm 100 0 5 1 c rnorm 100 0 5 1 d rnorm 100 1 1 e rnorm 100 1 1 gt tidyr g
  • RStudio 在临时目录中从 Rmarkdown 创建 PDF 文件

    我使用 RStudio 和 Rmarkdown 来创建报告 由于某种原因 使用 Knit 按钮会导致它仅在某个临时目录中创建 从命令输出来看 似乎 pandoc 本身被指示这样做 我觉得这很奇怪 usr lib rstudio bin pa
  • R闪亮的html小部件之间的交互

    我正在开发一个 R 闪亮应用程序 它使用多个 html 小部件 特别是网络D3 d3热图 and 和弦诊断 这些小部件单独工作正常 但是 在同一页面中使用它们会留下一个空格处他们应该在哪里 这是显示错误的可重现代码 在 UI 中注释绘图线
  • r : 直方图上的 ECDF

    在 R 中 与ecdf我可以绘制经验累积分布函数 plot ecdf mydata 与hist我可以绘制数据的直方图 hist mydata 如何在同一图中绘制直方图和 ecdf EDIT 我尝试做类似的东西 https mathemati

随机推荐

  • 什么是 UnsafeMutablePointer?如何修改底层内存?

    我正在尝试使用 SpriteKit 的SKMutableTexture类 但我不知道如何工作UnsafeMutablePointer lt Void gt 我有一个模糊的想法 它是指向内存中一系列字节数据的指针 但我该如何更新呢 这在代码中
  • 获取对象名称和函数名称

    这实际上是2个问题 1 有没有一种通用的方法来获取实例的类名 所以如果我有一个类 class someClass object 我想要一种内置的方式来给我一个字符串 someClass 2 与函数类似 如果我有 def someFuncti
  • C++ 没有指针或引用的虚函数调用

    据我所知 虚函数调用通常需要指针或引用 所以我对下面的代码感到非常惊讶 include
  • 上传意图函数 Dialogflow V2

    我正在尝试开发一个API来上传意图DialogflowV2 我已经尝试过下面的代码片段 但是如果尝试与它进行通信 它不起作用Dialogflow它确实有效 检测意图 并且确实得到了回复Dialogflow以便查询 允许 我是管理员 gt 服
  • 将 FopFactoryBuilder baseURI 设置为 jar 类路径

    我正在将 Apache FOP 1 0 项目升级到 Apache FOP 2 1 在此项目中 所有必需的文件都打包在 jar 文件中 我添加了新的 FopFactoryBuilder 来生成 FopFactory FopFactoryBui
  • CKEditor4:使文本不同于 HTML

    I add StrInsert plugin to my CKEditor It basically adds a button which in my editor is labeled CRM Field 该按钮的作用是将一个值附加到我
  • 首先将文本小写,然后大写。用CSS可以吗?

    首先将文本小写 然后大写 用CSS可以吗 编辑 示例 HELLO WORLD gt Hello World Edit2 我有一个全部大写的国家 地区列表 例如UNITED KINGDOM 我必须让它看起来像United Kingdom Ye
  • 在 ScrollViewer 中使用 WPF DataGrid 虚拟化

    我知道 DataGrid 支持虚拟化 因此它仅为可见行创建网格单元 但是 这似乎仅在 DataGrid 大小受到限制的情况下才有效 在我的场景中 DataGrid 放置在滚动查看器内 如下所示
  • 如何将 \x00 作为参数传递给程序?

    我有一个小程序 我希望将 shellcode 作为参数传递 在shellcode中 需要传递 x00 我尝试了以下命令 program python c print x01 x00 x00 x00 x9c xd8 xff xbf 但 x00
  • ag-网格行未删除

    我正在尝试从我的 ag Grid 中删除一行 如下所示 let alertRow RowNode this gridApi getRowNode rowIndex console log alertRow this gridApi upda
  • Borland x86 内联汇编器;获取标签的地址?

    我使用 Borland Turbo C 和一些内联汇编代码 因此大概是 Turbo Assembler TASM 风格的汇编代码 我希望做到以下几点 void foo bar void asm mov eax SomeLabel SomeL
  • 原则 2 映射引用唯一键

    基本问题 是否可以使用不引用主键而仅引用唯一键的 Doctrine 来映射关联 扩大的视野 我有一个实体 Participation which may参考2个其他实体 DropoutCause and DischargeType 根据此组
  • 错误:无法为 aiohttp 构建轮子,这是安装基于 pyproject.toml 的项目所必需的

    Python版本 3 11 通过以下方式安装应用程序的依赖项pip install r requirements txt给出以下错误 socket c o build temp linux armv8l cpython 311 aiohtt
  • 如何使用 Azure CLI(az ad 应用程序)创建范围

    使用 Azure CLI 2 x 我找不到在 Azure AD 门户中公开 API 部分下 添加范围 的方法 我所看到的是 如果我在创建应用程序时传递 identifier uris 则会自动设置 APP ID URI 和范围 az ad
  • 为什么在 Flux 应用程序架构中每个实体使用一个存储?

    我正在一个项目中使用reactjs 和flux 架构 我对如何将嵌套数据正确分解为存储以及为什么我应该将数据拆分为多个存储感到有点困惑 为了解释这个问题 我将使用这个例子 想象一个有项目的 Todo 应用程序 每个项目都有任务 每个任务都可
  • 变基合并提交

    假设我的 Git 存储库最初有两个分支 Foo 和 Bar Foo Bar 我创建了第三个分支 FooBar 在其中提交了其他两个分支的合并 Foo FooBar Bar FooBar 现在比 Foo 和 Bar 都领先一项 接下来 我做了
  • jqGrid 中的自定义聚合/分组

    Overview 我需要以某种方式自定义 jqGrid 插件 无论是通过巧妙的技巧 黑客攻击还是修改插件 以支持以下类型的聚合 分组 我将非常感谢 jqGrid 社区关于如何实现这一点的一些想法 Details 聚合 分组的工作原理如下 首
  • 如何在 Windows 窗体应用程序中显示矢量图形 (SVG)?

    有没有办法 最好是控件 在 Windows 窗体应用程序中显示矢量图形 最好是 SVG 我猜这很容易做到WPF 但我不想迁移该项目 GDI Graphics 类可以进行矢量图形 对于 SVG 您可以尝试将其加载到网页浏览器控件
  • C# 在任务栏缩略图上显示按钮

    在 WMP 中 任务栏缩略图上显示了按钮 如何用 C 为我的 winforms 应用程序制作它们 The WindowsAPI代码包包含一个名为ThumbnailToolBarButton您可以使用它来运行此功能 您需要确保每个按钮都有图标
  • 为 geom_vline 添加单独的图例

    我有这个数据框 dput df structure list X c 337L 338L 339L 340L 341L 342L 343L 344L 345L 346L 347L 348L 349L 350L 351L 352L 353L