Mam wykres w ggplot2 za pomocą, powiedzmy, 2 linii, aw legendzie mam "Rekiny" i "Tygrysy". Czy jest jakiś sposób, aby zamiast tekstu pojawiły się legendy rekina/tygrysa?Użyj obrazu zamiast etykiet w legendzie ggplot2
Odpowiedz
Jesteś znacznie lepiej wyłączyć za pomocą ggsave
zapisać rysunek jako eps
lub svg
, a następnie otworzyć go w programie Illustrator (lub odpowiednik otwartego źródła) i zastąpienie legendę z obrazami. Jeśli naprawdę nie jesteś gotowy na zrobienie tego wszystkiego w R, możesz użyć annotation_raster
w bieżącym ggplot2
i dodać jakiś tekst obok niego, używając geom_text
. Tutaj jest szorstka próba:
set.seed(10)
library(ggplot2)
library(RCurl)
library(png)
df <- data.frame(animal = sample(c("sharks", "tigers"),20, rep=T), time=1:20,
scariness = rnorm(20)*-20)
shark <- readPNG(getURLContent("http://i.imgur.com/EOc2V.png"))
tiger <- readPNG(getURLContent("http://i.imgur.com/zjIh5.png"))
ggplot(df, aes(time, scariness, group = animal, color = animal)) +
geom_line(show_guide = FALSE) +
annotation_raster(tiger, xmin = nrow(df)-1, xmax = nrow(df),
ymin = max(df$scariness)-(.05*max(df$scariness)),
ymax = max(df$scariness), interpolate = T) +
annotation_raster(shark, xmin = nrow(df)-1, xmax = nrow(df),
ymin = max(df$scariness)-(.1*max(df$scariness)),
ymax = max(df$scariness)-(.05*max(df$scariness)), interpolate = T)
+1 To jest fajne. –
Ty, panie, zasługujesz na 1000 internetowych piw. A może tylko rekin. To zależy od Ciebie. – joran
Niesamowite obejście i przykład! Dzięki! – nicolaskruchten
- 1. Pyplot łączą wiele etykiet linii w legendzie
- 2. Zmiana symbolu w legendzie w ggplot2
- 3. Sterowanie poziomem "alfa" w legendzie ggplot2
- 4. Usuwanie „dot” elementu z ggplot2 legendzie
- 5. Dynamiczne formatowanie poszczególnych etykiet osi w ggplot2
- 6. Używanie obrazu dla etykiet zaznaczonych w matplotlib
- 7. dodatkowe zmienne w legendzie podczas pakowania ggplot2 w działki R
- 8. Twórz skrócone legendy ręcznie dla długich etykiet X w ggplot2
- 9. regulację szerokości legendzie do ciągłej zmiennej w ggplot2
- 10. minimalny i maksymalny zgorzeliny napełnienia gradientu legendzie tekście: ggplot2
- 11. ggplot2 heatmap: jak zachować kolejność etykiet?
- 12. Dodawanie etykiet tekstowych do plotera ggplot2
- 13. Dodaj bezpośrednie etykiet ggplot2 wykres geom_area
- 14. Wstawianie obrazu do ggplot2
- 15. Użyj zewnętrznego zamiast expand.grid
- 16. bquote nie działa w facet_grid etykiet w wersji ggplot2 2,1
- 17. Łącząc nowe linie i kursywy w facet etykiet z ggplot2
- 18. R ggplot2 zawijanie długich etykiet osi X w wielu rzędach
- 19. Zmień rozmiar tytułów osi i etykiet w ggplot2
- 20. Mix pusty i bquote-d aspekt etykiet za pomocą drukarki etykiet w ggplot2> = 2,0
- 21. Wyróżnianie poszczególnych etykiet osi pogrubioną za pomocą ggplot2
- 22. Użyj TypeScript lib.core.d.ts zamiast lib.d.ts
- 23. Użyj metod abstrakcyjnych zamiast pól
- 24. Użyj typu statycznego zamiast zmiennej
- 25. Ruby/Rails: Użyj separatora `:„-'` zamiast
- 26. Dłuższe linie w legendzie()
- 27. wyświetlacz wykreślono dane tylko w legendzie
- 28. użyj obrazu base64 z Carrierwave
- 29. HTML w formie Symfony2 etykiet zamiast zwykłego tekstu
- 30. Jak konkretnie zamówić ggplot2 x axis zamiast kolejności alfabetycznej?
nie zamierzam powiedzieć, że jest to niemożliwe, ale każde rozwiązanie można uzyskać w R może być WAAAAY trudniejsze niż po prostu rozpalania Photoshop. (Patrząc na 'grid.raster' może jednak zacząć.) – joran
lub [gimp] (http://www.gimp.org/) dla miłośników open source. – Chase
Tak, robienie tego ręcznie w programie rastrowym jest nieważne, to jest generowanie powtarzających się wykresów na dużą skalę :) – nicolaskruchten