如何以“2013-07-01 00:30:00”形式更改x轴的标签?
library(ggplot2)
a<-as.POSIXlt("2013-07-01 00:30:00")
b<-as.POSIXlt("2013-07-5 00:30:00")
aI<-as.numeric(a)
bI<-as.numeric(b)
times<-sample(seq(aI,bI,by=2),100)
ggplot(, aes(x=times)) +
geom_histogram(aes(y=..count..),binwidth=10000, colour="black") +
theme(axis.text.x = element_text(angle=45))
我正在寻找一个添加曲线的功能
geom_density(alpha=.2, fill="#FF6666")
但是在上面的图中,曲线适合于..count ..属性。
答案 0 :(得分:1)
您将数字x值传递给ggplot
。您应该传递datetime值并使用scale_x_datetime
:
times <- sample(seq(a, b, by = 2), 100)
library(scales)
ggplot(, aes(x = times)) +
geom_histogram(aes(y= ..count.. ), binwidth = 10000, colour = "black") +
theme(axis.text.x = element_text(angle = 45)) +
scale_x_datetime(labels = date_format("%Y-%m-%d %H:%M:%S"))
您不能将密度添加到绘图中,因为y轴刻度不适合(密度和stat_density
的计数都不适合)。如果您只关心密度曲线的形状,可以使用geom_density(alpha = .2, fill = "#FF6666", aes(y = ..scaled.. * 7.5))
。
修改强>
根据你的评论,你似乎想要这个:
ggplot(, aes(x = times)) +
geom_histogram(aes(y= ..density..), binwidth = 10000, colour = "black") +
theme(axis.text.x = element_text(angle = 45)) +
scale_x_datetime(labels = date_format("%Y-%m-%d %H:%M:%S")) +
geom_density(alpha = .2, fill = "#FF6666")
由于您在y = ..count..
中明确指定了geom_histogram
,因此会引起混淆(尽管这是默认设置)。