przeszły już wyszukiwanie wszystkich powiązanych tematów na ten temat, ale nie można znaleźć rozwiązania.ggplot2: Różne symbole legendy dla punktów i linii
Oto mój kod i załączony wynik działki:
g <-ggplot(NDVI2, aes(LAI2, NDVI, colour = Legend)) +
theme_bw (base_family = "Times") +
scale_colour_manual (values = c("purple", "green", "blue", "yellow", "magenta","orange", "cyan", "red", "black")) +
geom_point (size = 3) +
geom_smooth (aes(group = 1, colour = "Trendline"), method = "loess", size = 1, linetype = 5, se = FALSE) +
geom_smooth (aes(group = 1, colour = "Regression (log)"),linetype = 1, size=1.2,method = "lm", formula = y~ log(x), se = FALSE) +
labs (title = "Correlation of LAI and NDVI")+
theme (legend.title = element_text (size = 15))
co skutkuje tym działki:
Jak widać, wszystkie ikony Legenda wyglądają tak samo. Czego chcę, to to, że punkty są pokazane jako punkty, a dwie linie ("Regresja" i "Linia trendu") są pokazane jako linie.
Próbowałem użyć
guides (colour = guide_legend (override.aes = list(size = 1.5)))
ale to daje mi jeszcze raz wszystkich ikon w ten sam sposób i nie mogę dowiedzieć się, w jaki sposób ich odróżnić
jestem nowy na R i to jest moja pierwsza "złożona" fabuła. Spróbuj dowiedzieć się więcej dzięki pomocy online i Google, ale nie możesz znaleźć rozwiązania tego problemu. Dziękuję wszystkim za poświęcony czas i pomoc!
Tutaj dput
moich danych:
dput(NDVI2)
structure(list(MeanRED = c(3.240264, 6.97950484, 3.75052276,
4.62617908, 4.07743944, 4.88961572, 3.15865532, 2.28368236, 3.40793788,
4.28833416, 4.52529496, 2.45698208, 3.84003364, 4.31006672, 3.29672264,
4.21926652, 4.64357012, 3.94445908, 3.95942484, 1.22673756, 4.70933136,
5.33718396, 5.71857348, 5.7014266, 3.85938572, 6.07816804, 2.93602476,
5.00289296), MeanNIR = c(46.8226195806452, 48.4417953548387,
47.8913064516129, 43.9416386774194, 44.7524788709677, 52.2142607741935,
48.6422146774194, 44.6617992580645, 57.7213822580645, 58.5066447096774,
56.6924350967742, 57.4100250967742, 58.0419292903226, 58.7054423225806,
58.5283540645161, 54.7658463548387, 58.8950077096774, 58.2421209354839,
57.8538210645161, 50.209727516129, 59.5780209354839, 60.1662100645161,
62.1929408387097, 60.3309026451613, 57.859932516129, 63.5678422258065,
55.2536370967742, 60.1808743548387), NDVI = c(0.870552242769623,
0.748129155560663, 0.854748647859414, 0.809496111062421, 0.832994214160536,
0.828746627367857, 0.878046244390978, 0.902709173224405, 0.888500710549276,
0.863417928083076, 0.852157374806182, 0.917918660181389, 0.875891666709934,
0.863206160341016, 0.893353221193523, 0.856937918252258, 0.853834622095331,
0.873141147848366, 0.871890732089488, 0.952300860559358, 0.853491201866442,
0.837040994913869, 0.831587513918106, 0.827314084928549, 0.874937512911774,
0.825455384542418, 0.899087753174211, 0.846498808949291), LAI2 = c(1.1,
1.2, 1.3, 1.4, 2.1, 2.2, 2.3, 2.4, 3.1, 3.2, 3.3, 3.4, 4.1, 4.2,
4.3, 4.4, 5.1, 5.2, 5.3, 5.4, 6.1, 6.2, 6.3, 6.4, 7.1, 7.2, 7.3,
7.4), Legend = c("LAI 1", "LAI 1", "LAI 1", "LAI 1", "LAI 2",
"LAI 2", "LAI 2", "LAI 2", "LAI 3", "LAI 3", "LAI 3", "LAI 3",
"LAI 4", "LAI 4", "LAI 4", "LAI 4", "LAI 5", "LAI 5", "LAI 5",
"LAI 5", "LAI 6", "LAI 6", "LAI 6", "LAI 6", "LAI 7", "LAI 7",
"LAI 7", "LAI 7")), .Names = c("MeanRED", "MeanNIR", "NDVI",
"LAI2", "Legend"), class = "data.frame", row.names = c("LAI 1-1",
"LAI 1-2", "LAI 1-3", "LAI 1-4", "LAI 2-1", "LAI 2-2", "LAI 2-3",
"LAI 2-4", "LAI 3-1", "LAI 3-2", "LAI 3-3", "LAI 3-4", "LAI 4-1",
"LAI 4-2", "LAI 4-3", "LAI 4-4", "LAI 5-1", "LAI 5-2", "LAI 5-3",
"LAI 5-4", "LAI 6-1", "LAI 6-2", "LAI 6-3", "LAI 6-4", "LAI 7-1",
"LAI 7-2", "LAI 7-3", "LAI 7-4"))
Dziękuję bardzo Henrik. Wstawiłeś "guide" w "scale_colour_manual". Jeśli to zrobię, R mówi mi, że nie zna funkcji "przewodnika". Zmodyfikowałem go następnie na "+ guides (color = guide_legend (override.aes = list (rodzaj linii = c (rep (" blank ", 7)," solid "," dashed "), shape = c (rep (16, 7), NA, NA)))) "i zadziałało. Czy możesz mi wytłumaczyć dlaczego? Ponadto nie otrzymuję dla mnie wszystkich poleceń w tej linii. Czy to naprawdę jedyny sposób na zrobienie tego? Uważam, że jest to bardzo standardowa procedura i że kod jest dla mnie dość skomplikowany. –
Wg konstrukcji 'ggplot' ma silne powiązanie między tym, co wstawiasz w" aes "(lub nie) i wynikowym pojawieniu się legendy. Dostosowanie legend może być nieco hackish. Możesz [szukać SO z "guide_legend (override.aes"] (http://stackoverflow.com/search?q= [r] +% 22guide_legend% 28override.aes% 22), aby znaleźć alternatywne rozwiązania wśród odpowiedzi. – Henrik
Pracuję nad fabułą przez wiele godzin, a ten post pomógł mi ogromnie, znacznie łatwiej niż cokolwiek innego, na co patrzyłem. – Nova