Saat başına sıklık gösteren ggplot yapmayı denerim. X ekseni ile ilgili bir sorunum var, orijinal tarih formatını değiştirdim, 2015-01-02 02:07:27 - 2015-01-02 02 arası, format(dates, format = "%Y-%m-%d %H")
kullanıyorum. Benim ggplot'umda aes(x=as.Date(dates)..
'u kullandım ama x ekseninde 2015-01-02 formatına sahibim. X ekseni üzerinde tarih "%Y-%m-%d %H"
biçiminde göstermek mümkün mü?
Yardımlarınız için teşekkürler!ggplot x-ekseni saat olarak tarih olarak
cevap
Sadece yorum yazmam için bir örnek verebileceğimi düşündüm. date_format() işlevini ölçekleri paketinden kullanabilirsiniz.
require(ggplot2)
require(scales)
#Create a test sequence of dates
test_dates = seq(from = as.POSIXct("2015-01-02 02:07:27", format="%Y-%m-%d %H:%M:%S"),
to = as.POSIXct("2015-01-04 02:00:00", format="%Y-%m-%d %H:%M:%S"),
by = "hour")
#Set seed for random variable
set.seed(1)
#Create the test data
time_data =
data.frame(dates = test_dates,
measurements = runif(n = length(test_dates),
min = 0, max = 1))
#Plot the data
ggplot(time_data, aes(x = dates, y = measurements)) +
geom_line() +
#Here is where I format the x-axis
scale_x_datetime(labels = date_format("%Y-%m-%d %H"),
date_breaks = "8 hours")
Bu şekilde yapmanın avantajı, orijinal verilerinizi değiştirmenize/yeniden biçimlendirmenize gerek yoktur. `) (
require(ggplot2)
require(scales)
#Create the test data
example_data <-
data.frame(a = as.POSIXct(c("2015-01-02 06:07:27", "2015-01-02 06:42:36", "2015-01-02 08:07:38", "2015-01-02 08:08:45", "2015-01-02 08:12:23", "2015-01-03 09:07:27", "2015-01-03 09:42:36")),
b = c("1","1","1","1","1","1","1"))
#Pull out date and hour components
example_data$days <- as.POSIXct(format(example_data$a, "%Y-%m-%d"))
#This doesn't work because format just returns a character string, not a dateTime
example_data$hours <- format(example_data$a, "%Y-%m-%d %H")
#Instead, you need to re-cast the output of format as a dateTime
example_data$hours <- as.POSIXct(format(example_data$a, "%Y-%m-%d %H"), format="%Y-%m-%d %H")
#Plot the data
ggplot(data = example_data, aes(x=days)) + geom_bar(stat="bin")
ggplot(data = example_data, aes(x=hours)) + geom_bar(stat="bin")
#Now use axis-scaling and date_format to get just the data and hours
ggplot(data = example_data, aes(x=hours)) +
geom_bar(stat="bin") +
scale_x_datetime(labels = date_format("%Y-%m-%d %H"))
Yardımlarınız için çok teşekkür ederim. Bu benim küçük veri eksikliğim: 'a <- as.POSIXct (c (" 2015-01-02 06:07:27 "," 2015-01-02 06:42:36 "," 2015-01-02 08:07:38 "," 2015-01-02 08:08:45 "," 2015-01-02 08:12:23 "," 2015-01-03 09:07:27 "," 2015-01 -03 09:42:36 ")) b <- c (" 1 "," 1 "," 1 "," 1 "," 1 "," 1 "," 1 ") example_data <- data_frame (a, b) example_data $ gün <- as.POSIXct (biçim (örnek_data $ a, "% Y-% m-% d")) example_data $ saatler <- biçim (example_data $ a, "% Y-% m -% d% H ") –
Üzgünüm unuttum, bu benim arsa: ' ggplot (data = example_data, aes (x = gün)) + geom_bar (stat = "bin") ggplot (data = example_data, aes (x = saat)) + geom_bar (stat = "bin") Saatlerce sorun yaşıyorum. –
@ A.Trzcionkowska Yukarıdaki test verilerinizi kullanarak başka bir örnek ekledim. Gelecekte, dateTimes ile çalışırken * lubridate * paketine bakmak isteyebilirsiniz. Hayatını daha kolaylaştırabilir. –
- 1. Geçerli saat dilimine göre tarih/saat olarak UTC tarih/saatini göster
- 2. Golang - Marshaling XML zamanı.Micro özniteliği için tarih biçimi olarak saat
- 3. Tarih olarak tarih türü Oracle'da
- 4. Tarih eksenli ggplot dikey çizgi
- 5. Tarih olarak gösterme saniye olarak, milisaniye
- 6. Swift: Tarih saat damgası oluşturma ve ISO 8601, RFC 3339, UTC saat dilimi olarak nasıl biçimlendirilir?
- 7. Tarih-saat öğesinin tarih değeri ayarından
- 8. Python: tarih, saat biçimlendirme
- 9. SQLite Tarih/Saat Manipülasyon
- 10. Tarih Saat Dönüşümü
- 11. Tarih ve saat girişi
- 12. Tarih/saat artan AM/PM'de varchar veri türü olarak saklanan tarih-zaman nasıl sıralanır?
- 13. Barplot ggplot ile ay olarak toplam?
- 14. Tarih/Saat Matematik HQL'de mi?
- 15. Java: JPA sınıfları, Tarih Tarih saat
- 16. MySQL zaman damgasını tarih dizesi olarak seç
- 17. Günün tarih ve saati dize olarak alın
- 18. NSDateFormatter Saat Dilimi'nde saat dilimi için saat/tarih biçimi
- 19. Tarih formatını saniyeler olarak dönüştürün
- 20. Tarih seçicisi olarak takvimi kullan
- 21. Javascript Tarih() geçen tarih ve tarih-saat arasındaki fark
- 22. Tarih saat işlevleri yardım informix
- 23. PHP Tarih - biçimlendirme Saat farkı
- 24. saat dilimlerine göre tarih dönüştürmek
- 25. Gnuplot x ekseninde tarih/saat
- 26. Erişim veritabanına tarih/saat ekleme
- 27. UIDatePicker ile saat dilimi sorunu Tarih: 1 Saat Yanlış
- 28. Saat biçimini mysql olarak nasıl ayarlayabilirim?
- 29. Saniyelerin saat, dakika ve saniye olarak dönüştürülmesi
- 30. Sistem yerel saat dilimini python olarak alın
Eğer' aes içinde önceki biçimi üzerine yazma değildir: Burada OP'ın yorumlardan test verilerini kullanarak başka örnek:
GÜNCELLEME: Burada gibi Ortaya çıkan grafik nasıl göründüğü ve ? – mtoto
R, bir "Tarih" _only_ bir gün, ay ve yıl. Yani “as.Date()' yi kullandığınızda, sahip olduğunuz tek şey budur. Eğer saat isterseniz, ihtiyacınız olan tip _datetime_, muhtemelen POSIXct. – joran
Terazi paketi, aradığınız şeyi yapması gereken bir date_format işlevine sahiptir. Bunu ggplot'un scale_x_datetime işleviyle birlikte kullanın. İşte iyi bir örnek: http://stackoverflow.com/questions/11748384/formatting-dates-on-x-axis-in-ggplot2 –