Słownik metodologiczny · Statystyka opisowa

Wykres skrzypcowy (violin plot) – kształt rozkładu w grupach

Dwa identyczne pudełka mogą skrywać zupełnie różne rozkłady. Wykres skrzypcowy dokłada do nich krzywą gęstości. Pokazujemy, jak go czytać, kiedy wybrać i jak opisać w pracy.

Strona główna / Słownik / Wykres skrzypcowy
W skrócie: Wykres skrzypcowy pokazuje rozkład wyników w grupach jako lustrzaną krzywą gęstości, zwykle z wąskim pudełkiem w środku. Wybierz go, gdy kształt rozkładu ma znaczenie, np. przy dwóch szczytach. Przy małej próbie dodaj surowe punkty i podaj ustawienia szerokości pasma.

Co to jest wykres skrzypcowy?

Wykres skrzypcowy (ang. violin plot) pokazuje rozkład zmiennej ilościowej w grupach jako lustrzaną krzywą gęstości: im szerszy kształt na danej wysokości, tym więcej wyników w tym miejscu skali. Hintze i Nelson (1998) zaproponowali go jako połączenie wykresu pudełkowego z oszacowaniem gęstości, dlatego wewnątrz „skrzypiec” zwykle rysuje się wąskie pudełko z medianą i kwartylami.

Kiedy go użyć

Wykres skrzypcowy przydaje się, gdy porównujesz grupy i chcesz zobaczyć kształt rozkładu: skośność, dwa szczyty albo skupienie wyników przy końcu skali. Pudełko tego nie pokaże, bo opisuje rozkład tylko pięcioma liczbami. Weissgerber i in. (2019) zaliczają wykresy skrzypcowe, obok punktowych i pudełkowych, do rysunków, które odsłaniają dane zamiast je ukrywać, jak robi to wykres słupkowy ze średnimi.

Przykład

Porównano lęk przed egzaminem (skala 10–50) w dwóch grupach po 60 studentów: piszących egzamin online i w sali (dane symulowane). Pudełka są niemal identyczne: Me = 32.5 w obu grupach, kwartyle 23.0–38.0 online i 24.0–38.0 w sali. Dopiero skrzypce pokazują, że w grupie online rozkład ma dwa szczyty, w okolicach 22 i 38 punktów, a w sali – jeden.

Wykres skrzypcowy lęku przed egzaminem: w obu grupach mediana 32.5 i podobne kwartyle, ale w grupie online rozkład ma dwa szczyty, a w grupie w sali jeden
Rysunek 1. Kolorowy kształt to gęstość rozkładu, białe pudełko – mediana i kwartyle, szare punkty – pojedyncze osoby (n = 60 w grupie). Obliczenia: R (dane symulowane).

Jak opisać w pracy

Rozkład lęku przed egzaminem w obu grupach przedstawiono na wykresie skrzypcowym z naniesionym wykresem pudełkowym (Rysunek 1). Mediany były równe (Me = 32.5), ale w grupie egzaminu online rozkład był dwumodalny, z wyraźnymi skupieniami wyników niskich i wysokich.

Na co uważać

  • Kształt zależy od szerokości pasma. W przykładzie przy domyślnym paśmie i przy połowie tej szerokości widać dwa szczyty, a przy trzykrotnie szerszym – już tylko jeden. Podaj w podpisie, jakich ustawień użyto.
  • Przy małej próbie gęstość jest zgadywaniem. Gdy w grupie jest kilkanaście osób, pokaż same punkty albo wykres raincloud, który łączy gęstość z surowymi danymi.
  • Nieprzycięte skrzypce wychodzą poza skalę. Krzywa gęstości może sięgać wartości, których skala nie dopuszcza (np. poniżej 10), dlatego przycinaj ją do zakresu danych.

Jak dobrać typ rysunku do danych, pokazuje wpis Wykresy w pracy dyplomowej, a kształt rozkładu jednej zmiennej opisuje histogram.

Przykład reprodukowalny

Wykres skrzypcowy w R

Kod liczy medianę i kwartyle w obu grupach oraz sprawdza, ile szczytów ma krzywa gęstości przy różnej szerokości pasma. Rysunek powstaje w ggplot2 funkcją geom_violin() z dodanym geom_boxplot().

Kwartyle a kształt rozkładu

Dane wejściowe: lęk przed egzaminem (10–50) w dwóch grupach po 60 osób (dane symulowane, set.seed(7)).

Co odczytać: medianę i kwartyle w grupach oraz liczbę szczytów gęstości w grupie online przy trzech szerokościach pasma.

R
set.seed(7)
skala  <- function(x) pmin(pmax(round(x), 10), 50)          # wyniki w zakresie skali 10–50
online <- skala(c(rnorm(30, 22, 3.5), rnorm(30, 38, 3.5)))   # lęk przed egzaminem: dwie podgrupy
sala   <- skala(rnorm(60, 30, 11))                           # jeden szczyt
d <- data.frame(forma = rep(c("online", "sala"), each = 60), lek = c(online, sala))
aggregate(lek ~ forma, d, function(x) round(c(Me = median(x), Q1 = quantile(x, .25, names = FALSE),
                                              Q3 = quantile(x, .75, names = FALSE)), 1))
szczyty <- function(x, adjust = 1) {                         # liczba lokalnych maksimów gęstości
  g <- density(x, adjust = adjust)$y
  sum(diff(sign(diff(g))) == -2)
}
sapply(c(pasmo_0.5 = 0.5, pasmo_1 = 1, pasmo_3 = 3), function(a) szczyty(online, a))
# rysunek: ggplot(d, aes(forma, lek)) + geom_violin() + geom_boxplot(width = 0.12)
Wynik w R
   forma lek.Me lek.Q1 lek.Q3
1 online   32.5   23.0   38.0
2   sala   32.5   24.0   38.0
pasmo_0.5   pasmo_1   pasmo_3 
        2         2         1 

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (funkcje pakietów base i stats); rysunek wykonano w ggplot2 4.0.2.

  1. R: R Core Team. (2026). R: A language and environment for statistical computing (Version 4.5.3) [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/
  2. ggplot2 (wersja 4.0.2): Wickham, H. (2016). ggplot2: Elegant graphics for data analysis. Springer. https://ggplot2.tidyverse.org

Najczęstsze pytania

Czym różni się wykres skrzypcowy od wykresu pudełkowego?

Pudełko pokazuje medianę, kwartyle i wąsy. Skrzypce dokładają kształt rozkładu, więc widać na nich np. dwa szczyty, których pudełko nie zdradzi.

Co oznacza szerokość wykresu skrzypcowego?

Szerokość na danej wysokości odpowiada gęstości wyników w tym miejscu skali. Szerzej znaczy, że więcej osób ma wyniki zbliżone do tej wartości.

Od ilu osób w grupie ma sens wykres skrzypcowy?

Nie ma jednej granicy. Przy kilkunastu osobach krzywa gęstości jest niestabilna, więc lepiej pokazać surowe punkty albo połączyć je ze skrzypcami.

Powiązane hasła

Poradniki, w których użyjesz tego pojęcia

Potrzebujesz wsparcia w analizie danych?

Wybierz ofertę dopasowaną do pracy dyplomowej albo profesjonalnego projektu naukowego.

Wyceń analizęOferta dla studentów

Bibliografia i dalsza literatura naukowa (APA 7)

  1. Hintze, J. L., & Nelson, R. D. (1998). Violin plots: A box plot-density trace synergism. The American Statistician, 52(2), 181–184. https://doi.org/10.1080/00031305.1998.10480559
  2. Weissgerber, T. L., Winham, S. J., Heinzen, E. P., Milin-Lazovic, J. S., Garcia-Valencia, O., Bukumiric, Z., Savic, M. D., Garovic, V. D., & Milic, N. M. (2019). Reveal, don’t conceal: Transforming data visualization to improve transparency. Circulation, 140(18), 1506–1518. https://doi.org/10.1161/circulationaha.118.037777 ● Otwarty dostęp

Cytowania BibTeX

@article{hintze1998violin, author={Hintze, Jerry L. and Nelson, Ray D.}, title={{Violin plots: A box plot-density trace synergism}}, journal={The American Statistician}, year={1998}, volume={52}, number={2}, pages={181--184}, doi={10.1080/00031305.1998.10480559}}
@article{weissgerber2019reveal, author={Weissgerber, Tracey L. and Winham, Stacey J. and Heinzen, Ethan P. and Milin-Lazovic, Jelena S. and Garcia-Valencia, Oscar and Bukumiric, Zoran and Savic, Marko D. and Garovic, Vesna D. and Milic, Natasa M.}, title={{Reveal, don’t conceal: Transforming data visualization to improve transparency}}, journal={Circulation}, year={2019}, volume={140}, number={18}, pages={1506--1518}, doi={10.1161/circulationaha.118.037777}}
R