2015-10-05 19 views
7

Chcę tworzyć wykresy słupkowe za pomocą ggplot. Po wydrukowaniu, gdy wykonuję export>copy to clipboard, a następnie próbuję dopasować rozmiar mojego wykresu, odstępy między kreskami zmieniają się wraz ze zmianą rozmiaru wykresu (odstępy między kreskami zmieniają swoją pozycję).szerokość i szczelina geom_bar (ggplot2)

Mam nadzieję, że jestem tego pewien. Użyłem następujący kod:

ggplot(df, aes(Day, Mean)) + 
geom_histogram(stat = "identity", position = "stack") + 
theme(axis.text = element_text(size=12, colour = 'black')) + 
ylim(0, 50) + xlim(0, 365) 

Próbowałem, używając zarówno geom_bar i geom_histogram, zarówno wydaje się dawać taką samą fabułę. A odstępy między prętami zmieniają się, gdy dopasowuję rozmiar.

P.S. Mam do wykreślenia 365 bars, z których każdy reprezentuje jeden dzień w roku. Możesz edytować pytanie, jeśli uważasz, że jestem niejasny.

plot i created with the code provided here

to wykres wytwarzane z kodem. Możesz wyraźnie zobaczyć nierówności między nimi.

oto dane: data

Edit

dane

df <- data.frame(Mean=c(0,0,0,0,0,0,0.027272727,0,0.409090909,0.009090909,0,0,0,0,0,0.054545455,0.036363636,0.118181818,0.327272727,0.254545455,0,0,1.609090909,1.636363636,0,0.181818182,1.2,0.090909091,0.409090909,0.418181818,1.018181818,0.409090909,0.127272727,0.072727273,0.054545455,1.2,0.127272727,0.290909091,0,0.518181818,0.254545455,0.454545455,1.545454545,1.1,1.763636364,0,0.136363636,0.7,0.445454545,1.954545455,0.018181818,0,2.618181818,0,0,3.518181818,7.645454545,2.709090909,5.909090909,0.9,1.109090909,2.354545455,0.418181818,0.272727273,0,0,1.636363636,0,2.927272727,0.472727273,1,0,2.109090909,0.490909091,0.827272727,2.663636364,4.8,0.554545455,6.3,3.936363636,2.218181818,0.045454545,0,7.109090909,0,3.745454545,3.009090909,8.818181818,6,21.99090909,2.845454545,3.918181818,1.4,12.32727273,1.136363636,4.345454545,1.018181818,2.927272727,12.53636364,2.618181818,0.709090909,5.645454545,5.345454545,3.181818182,2.681818182,13.96363636,3.990909091,9.9,12.54545455,8.545454545,11.43636364,6.281818182,1.836363636,11.4,4.827272727,16.14545455,3.581818182,1.972727273,3.4,4.472727273,18.86363636,5,11.4,5.790909091,3.745454545,1.072727273,2.581818182,5.063636364,12.42727273,9.2,10.85454545,15.18181818,5.963636364,22.53636364,5.027272727,7,4.572727273,7.190909091,15.42727273,7.3,23.48181818,30.87272727,19.62727273,6.463636364,16.20909091,9.509090909,5.1,8.127272727,5.890909091,11.84545455,10.14545455,4.518181818,15.23636364,22.41818182,21.62727273,7.245454545,19.56363636,33.94545455,26.98181818,9.027272727,11.28181818,20.44545455,27.52727273,23.25454545,28.77272727,20.04545455,30.68181818,28.32727273,12.38181818,13.54545455,18.17272727,12.97272727,38.14545455,20.2,14.30909091,39.44545455,34.4,34.49090909,23.32727273,29.37272727,50.68181818,23.2,16.28,35.02,49,18.86,30.96,37.83,33.01,44.31,25.51,33.76,15.05,24.8,8.99,15.72,41.31,41.47,28.12,44.22,30.63,37.35,15.72,12.86,21.89,18.02,6.32,4.73,24.16,29.12,11.58,24.25,22.69,15.7,24.36,20.05,17.19,26.71,17.84,16.53,9.3,5.11,10.97,19.95,5.65,29.88,34.95,24.14,32.09,9.85,17.49,13.72,7.97,26.21,24.9,26.45,14.1,9.52,18.64,13.43,15.17,26.61,9.84,24.9,16.42,19.58,17.58,22.96,39.61,22.83,15.49,23.64,16.71,3.96,10.17,19.04,28.42,16.64,4.95,9.73,13.45,11.67,8.02,8.71,8.31,17.65,8.41,7.19,11.94,5.15,5.54,5.21,0.88,0.96,6.18,9.46,10.24,17.29,8.95,16.51,6.31,11.4,5.05,8.28,0.26,0,6.19,1.02,0.99,0.94,1.87,0,0.21,3.32,3.33,7.82,2.65,5.21,0.49,1.59,0.05,2.25,0,0,1.09,0.42,0,0.05,0.02,0,0.18,0,0.02,0.05,0.09,0.01,1.01,0,0,2.38,0.42,0.65,0,0,0,0.4,0,0,0,0,0.18,0,0,0,0,0,0.63,0,0,0,0.1,0,0,0,0,0,1.35,0,0,0,0,0,1.62,0.2,0,0,0,1.3,0,0,0,0,0.89,4.55,0), Day=seq(1, 365, 1)) 
+0

załączyć trochę danych. Czy to nie znaczy, że nie masz obserwacji w niektóre dni? – Mateusz1981

+0

Tak, istnieje kilka brakujących danych przez kilka dni, ale położenie luk zmienia się, gdy próbuję dopasować rozmiar działki. –

+0

@ Mateusz1981 Dodałem dane. –

Odpowiedz

14

Ustawianie width do małej wartości i określenie color daje mi pożądany rezultat ze szczelinami między wszystkimi kreskami:

ggplot(df, aes(x = Day, y = Mean)) + 
    geom_bar(stat = "identity", width = 0.1, color = "black") + 
    theme_bw() + 
    theme(axis.text = element_text(size = 12)) 

powstały działki:

enter image description here


Jeśli chcesz żadnych luk, użyj width = 1:

ggplot(df, aes(x = Day, y = Mean)) + 
    geom_bar(stat = "identity", width = 1) + 
    theme_bw(base_size = 12) 

powstały działki:

enter image description here

Powiązane problemy