ggplotly() creates a wrong legend in some cases
Offen
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- R
- Sterne
- 2.7k
- Forks
- 641
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Given
library(ggplot2)
library(plotly)
d1 <- data.frame(X=1:10, Y= (1:10)^2, b=paste0("B",1:10),d="d1")
d1$Y2 <- d1$Y+2
gg2 <- ggplot(data=d1, aes(label=b)) +
geom_point(aes(x=X, y=Y, col="blue")) +
geom_line(aes(x=X, y=Y2, col="orange")) +
scale_color_manual(values=c("blue","orange"),
labels=c("Left","Center"),
name="")
print(gg2) results in:
But
ggplotly(gg2)
results in:
I know a more conventional code such as:
d1 <- data.frame(X=1:10, Y= (1:10)^2, b=paste0("B",1:10),position="left")
d2 <- data.frame(X=1:10, Y= (1:10)^2 + 2, b=paste0("B",1:10),position="center")
d <- rbind(d1,d2)
gg2 <- ggplot(data=d, aes(label=b)) +
geom_point(data=d[d$position=="left",],aes(x=X, y=Y,col=position)) +
geom_line(data=d[d$position=="center",],aes(x=X, y=Y,col=position)) +
scale_color_manual(values=c("blue","orange","red"),
labels=c("Left","Center"),
name="")
gg2
ggplotly(gg2)
results in similar legends, but I wonder if the 1st example is not uncovering a bug in ggplotly()
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, das reproduzierbare R-Beispiel aus dem Issue auszuführen, und vergleiche die Legenden von ggplot2 und ggplotly. Untersuche die ggplotly-Konvertierung manueller Farbskalen und überprüfe, dass die konvertierte Legende mit den deklarierten Left- und Center-Labels ohne zusätzliche Einträge übereinstimmt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- r
- Bereich
- data-visualization
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100