`add_trace` with `type = 'scatter', mode = 'lines'` works differently from `add_lines`
Personne n'a encore pris cette issue.
- Langage dominant
- R
- Étoiles
- 2.7k
- Forks
- 641
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
When plotting a regression line with confidence intervals, add_trace with type = 'scatter', mode = 'lines' works differently from add_lines. The latter works while the former fails (see examples).
Looks like add_trace(type = 'scatter', mode = 'lines', ...) attempts to connect datapoints pairwise instead of sequentially.
# load packages
require(dplyr)
require(plotly)
# prep data
setosa <- iris |>
filter(Species == "setosa") |>
mutate(fit = predict(lm(Sepal.Width ~ Sepal.Length), interval = "conf")[, "fit"],
lwr = predict(lm(Sepal.Width ~ Sepal.Length), interval = "conf")[, "lwr"],
upr = predict(lm(Sepal.Width ~ Sepal.Length), interval = "conf")[, "upr"])
## Compare plots ##
# plot 1: add_lines works
plot_ly(data = setosa, x = ~Sepal.Length) |>
add_trace(y = ~Sepal.Width,
type = 'scatter',
mode = 'markers',
showlegend = FALSE) |>
add_lines(y = ~upr, # add_lines works
color = I("#2ca02c"),
name = 'CI upper') |>
add_lines(y = ~lwr, # add_lines works
color = I("#2ca02c"),
alpha = 0.2,
fill = 'tonexty',
name = 'CI lower') |>
add_trace(y = ~fit, # add_trace works
type = 'scatter',
mode = 'lines',
name = 'Predicted')
# plot 2: replaced add_lines with add_trace, no other changes
plot_ly(data = setosa, x = ~Sepal.Length) |>
add_trace(y = ~Sepal.Width,
type = 'scatter',
mode = 'markers',
showlegend = FALSE) |>
add_trace(y = ~upr, # add_trace doesn't work
type = 'scatter',
mode = 'lines',
color = I("#2ca02c"),
name = 'CI upper') |>
add_trace(y = ~lwr, # add_trace doesn't work
type = 'scatter',
mode = 'lines',
color = I("#2ca02c"),
alpha = 0.2,
fill = 'tonexty',
name = 'CI lower') |>
add_trace(y = ~fit, # here add_trace works as it should
type = 'scatter',
mode = 'lines',
name = 'Predicted')
Output
Plot 1:
Plot 2:
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par les points d’entrée add_trace et add_lines de la R plotting API et reproduisez l’exemple de régression iris fourni. Comparez la manière dont les deux fonctions gèrent les traces de dispersion avec mode = 'lines', puis vérifiez que le remplacement de add_lines par add_trace produit les mêmes lignes séquentielles d’intervalle de confiance et le même remplissage.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- r
- Domaine
- data-visualization
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100