`ggplotly` uses colour that doesn't match the displayed gradient when providing one single numeric value to `fill` or `colour`
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- R
- Sterne
- 2.7k
- Forks
- 641
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
When converting from a ggplot object to a plotly interactive visualisation with ggplotly(), if there is only one numeric value for fill or colour, the wrong gradient colour is used according to the displayed legend. The legend uses a white-to-red gradient that doesn't match the blue gradient used in ggplot2.
library(ggplot2)
library(plotly)
# fill takes one numeric value
(single_value <- ggplot(mapping = aes(x = 1, y = 1, fill = 1)) +
geom_col())

Convert to plotly:
# ggplotly(single_value)

Using two numeric values works well:
# fill takes 2 numeric values
(two_values <- ggplot(mapping = aes(x = 1:2, y = 1:2, fill = 1:2)) +
geom_col())

Convert to plotly:
# ggplotly(two_values)

Using:
- R 4.1.0
- ggplot2 3.3.3
- plotly 4.9.3
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
Beginnen Sie damit, die Beispiele mit einem einzelnen Wert und mit zwei Werten im Issue auszuführen, und vergleichen Sie die Ausgabe von ggplot2 mit der Ausgabe von ggplotly. Konzentrieren Sie sich dabei auf den fill- oder colour-Gradienten und die Legende. Das Issue ist abgeschlossen, wenn ein einzelner numerischer Wert eine gerenderte Gradientfarbe erzeugt, die mit der angezeigten Legende übereinstimmt, und ein Regressionstest sowohl fill als auch colour abdeckt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- r
- Bereich
- data-visualization
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 48/100