quantiles drawn by geom_violin's draw_quantiles option are incorrect

Aperta
#847 3 commenti 1 reazione 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
45/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
python

Direzione di ricerca

Inizia riproducendo l’esempio Python fornito usando geom_violin(draw_quantiles=[0.25, 0.5, 0.75]) e il geom_boxplot sovrapposto. Traccia il comportamento di draw_quantiles di geom_violin e confronta le sue linee con i valori del 25%, 50% e 75% dei dati raggruppati. Il lavoro è completato quando le linee dei quantili del violino sono allineate con i quantili statistici corrispondenti, inclusa la mediana.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Discussion

The quantiles drawn by geom_violin are incorrect e.g. the 50% quantile does not correspond to the median. A simple example, where a boxplot is overlayed to show the expected position of the 25, 50 and 75% quantiles:

from plotnine import *
import pandas as pd
import numpy as np

df = pd.DataFrame({
    "y": np.random.gamma(1,2,10),
    "x": ["a"]*10
})
plt = (
    ggplot(df, aes(x="x", y="y")) +
    geom_violin(draw_quantiles=[0.25,0.5,0.75]) +
    geom_boxplot(alpha=0.5,width=0.1,fill="grey")
)
plt.show()

Plotting the mean and median for comparison:

plt = (
    ggplot(df, aes(x="x", y="y")) +
    geom_violin(draw_quantiles=0.5) +
    geom_hline(data=df.groupby(["x"])["y"].describe(), mapping=aes(yintercept="mean"), color="red",alpha=0.5) +
    geom_hline(data=df.groupby(["x"])["y"].describe(), mapping=aes(yintercept="50%"), color="blue",alpha=0.5)
)
plt.show()

Tested with plotnine-0.13.6 and Python 3.10

Lingua principale
Python
Stelle
4.8k
Fork
260
Merge medio
2g 12h
PR unite (30g)
4

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di has2k1/plotnine

Tutte le issue di has2k1/plotnine

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.