Mam problem z umieszczeniem legendy o następującej ggplot
owiniętej w ggplotly()
, pokazując tylko jedną estetykę. Obecnie pokazuje trzy zmienne (shape
, color
, linetype
) dla każdego wpisu legendy, ale chcę tylko pokazać jeden.dodatkowe zmienne w legendzie podczas pakowania ggplot2 w działki R
Tylko jedna z wartości aes()
zmienia się na tym wykresie (linetype
), ale pozostałe wartości odpowiadają konkretnym zmiennym i powinny być jednolite na wielu działkach na mojej stronie internetowej. Po prostu usunięcie pozostałych wartości aes()
z wykresu nie jest dobrym rozwiązaniem w moim przypadku, ponieważ chcę je zmienić na innych działkach podobnych do tego. Ukrywanie legendy i modyfikowanie pliku tooltip
powoduje wyświetlenie informacji, ale nie jest to pożądany efekt końcowy.
Podczas działania, następujący kod:
library(ggplot2)
library(plotly)
#aes lists
solute_colors <- c("NO3" = "#BF1616")
source_shapes <- c("rain"= 21)
location_linetypes <- c("1"= 2,"2"= 1,"3"= 3)
#create dataframe
data <- data.frame(
date = c(1966, 1970, 1972, 1979, 1989, 1990, 1998, 2000),
concentration = sample(1:8),
solute = c("NO3", "NO3", "NO3", "NO3", "NO3", "NO3", "NO3", "NO3"),
location = c("3", "1", "2", "3", "2", "1", "1", "2"),
source = c("rain", "rain", "rain", "rain", "rain", "rain", "rain", "rain")
)
#ggplot
ggplot(data, aes(x= date, y= concentration, linetype= location, color= solute, shape= source))+
geom_point() +
geom_line() +
scale_shape_manual(values = source_shapes) +
scale_color_manual(values = solute_colors)+
guides(shape = F, color = F)+ #removes shape and source legends in ggplot, but not in ggplotly
scale_linetype_manual(values = location_linetypes)
legenda wskazuje tylko linetype
, który jest pożądany efekt (patrząc here). Jednakże, kiedy opakowanie to w ggplotly
#ggplot p
p<-ggplot(data, aes(x= date, y= concentration, linetype= location, color= solute, shape= source))+
geom_point() +
geom_line() +
scale_shape_manual(values = source_shapes) +
scale_color_manual(values = solute_colors)+
guides(shape = F, color = F)+ #removes shape and source legends in ggplot, but not in ggplotly
scale_linetype_manual(values = location_linetypes)
#wrap p in ggplotly
ggplotly(p)
legenda wskazuje się z trzech aes()
wartości w ramach tej samej linii w legendzie widziany
.
Jak zastąpić tę zmianę podczas pakowania w ggplotly
lub ręcznie kodować w legendzie? Dodałem motywy w ggplot, które zmieniają legendę zarówno w ggplot
jak i ggplotly
po prostu dobrze (jak na przykład legend.position
i legend.title
), chociaż nie znalazłem niczego, aby kontrolować pokazywane rzeczywiste zmienne.
Używam wersji R 3.4.0 (RStudio wersja 1.0.143) na Windows 10. Każda pomoc byłaby bardzo ceniona!