【发布时间】:2012-08-23 01:44:53
【问题描述】:
我正在使用 R 创建流行病曲线(每天疾病病例数的直方图),并且在格式化 x 轴方面有点挣扎。
我知道 ggplot 提供了非常漂亮的图形和易于操作的轴 (Understanding dates and plotting a histogram with ggplot2 in R),但在这种情况下,我更喜欢使用 hist() 命令,因为我同时描述了 2 种不同的模式,如下所示(我认为你不能在 ggplot 中做类似的事情):
这里的问题是 x 轴不是从第一种情况开始的,有太多的刻度线,我希望能够有一个系统的日期标记,例如。每 7 天或每月 1 日。
数据以每个疑似病例一行的形式存储在数据库 (dat.geo) 中,包括发病日期和郊区信息(直方图中的黑色或白色),如下所示:
> head(dat.geo)
number age sex suburb Date_of_Onset
1 1 12 F x 2011-10-11
2 2 28 M x 2011-10-10
3 3 15 F x 2011-10-12
4 4 12 M y 2011-10-25
5 5 10 F x 2011-10-15
6 6 9 M y 2011-10-20
这是我的代码:
pdf(file='1.epi.curve.pdf')
hist(dat.geo$Date_of_Onset[(dat.geo$suburb=="x")], "days",
format = "%d %b %y", freq=T, col=rgb(0,0,0,1), axes=T, main="", add=T)
hist(dat.geo$Date_of_Onset[(dat.geo$suburb=="y")], "days",
format = "%d %b %y", freq=T, main="", col=rgb(1,1,1,.6), add=T, axes=F)
dev.off()
我已经尝试抑制轴并稍后使用此代码添加一个操纵轴
axis(1, labels=T)
axis(2)
但这就是我得到的(我不知道如何操作):
非常感谢您的帮助!
谢谢
【问题讨论】:
-
使用
axis(1, at=x, labels=y),其中x是刻度的坐标(数字向量),y是刻度标签(字符向量)。 -
您可以在
ggplot中使用position="identity"来覆盖条形