Menggunakan kode di bawah ini, menghasilkan grafik seperti yang juga ditunjukkan di bawah ini. Saya tidak mengerti mengapa hanya ada satu batang tebal yang menutupi Februari, saya akan berpikir hanya akan ada 2 batang di lokasi yang benar pada tanggal 5 Januari dan 5 Februari. Ada saran?

date<-c(as.Date("2021-01-05"),as.Date("2021-02-05"))
total<-c(1,5)
df<-data.frame(date,total,stringsAsFactors = FALSE)
df%>%
  ggplot() + 
  geom_col(aes(x= date,y=total))+
  scale_x_date(limits=c(as.Date('2021-01-01',"%Y-%m-%d"),as.Date('2021-04-01',"%Y-%m-%d")),date_breaks = "7 days")+
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)
    )

enter image description here

0
Basil 20 April 2021, 13:09

1 menjawab

Jawaban Terbaik

geom_col() memparameterisasi ulang data sebagai persegi panjang yang diberikan oleh titik xmin, xmax, ymin, ymax, bergantung pada lebar bilah. Lebar default yang ditetapkan untuk batang Anda menyebabkan parameter xmin jatuh di luar batas pada sumbu x. Karena penanganan nilai di luar batas dilakukan oleh scales::oob_censor(), nilai ini diganti dengan NA dan bilah menghilang.

Salah satu opsi adalah menyetel pengendali oob (di luar batas) ke oob_squish(), yang akan menggantikan nilai di luar batas dengan batas terdekat.

library(ggplot2)

date<-c(as.Date("2021-01-05"),as.Date("2021-02-05"))
total<-c(1,5)
df<-data.frame(date,total,stringsAsFactors = FALSE)

ggplot(df) + 
  geom_col(aes(x= date,y=total))+
  scale_x_date(limits = as.Date(c('2021-01-01', '2021-04-01'), "%Y-%m-%d"),
               date_breaks = "7 days", oob = scales::oob_squish)+
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1))

Pilihan yang berbeda adalah mengatur lebar palang sedemikian rupa sehingga palang tidak menjadi di luar batas pada awalnya.

ggplot(df) + 
  geom_col(aes(x= date,y=total), width = 1)+
  scale_x_date(limits = as.Date(c('2021-01-01', '2021-04-01'), "%Y-%m-%d"),
               date_breaks = "7 days")+
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1))

Dibuat pada 20-04-2021 oleh paket repex (v1.0.0)

1
teunbrand 20 April 2021, 10:29