此问题已在此处有答案:
How to put date on barplot() x-axis?(1个答案)
昨天关门了。
我有一个R数据。有两个柱子的框架。var
列包含任何变量,而date
列包含日期的每日序列。我试图生成一个条形图,其中变量在Y轴上绘制,日期在X轴上绘制。
由于日期太多,所以添加每个月的第一天会很方便。但是,我无法将日期添加到X轴。
下面是一个小例子:
# Example data
set.seed(1234)
df <- data.frame(
var = runif(n=365, min=1, max=20),
date = seq(from=as.Date('2022-01-01'), to=as.Date('2022-12-31'), by=1)
)
# Plot
barplot(df$var, main="var: random variable",
col="darkorange", border=NA, las=1)
box()
如何按月添加日期?
1条答案
按热度按时间tp5buhyn1#
一些选项:
ggplot2
如果你想玩X轴格式(e.例如,从
"%m %Y"
更改为其他内容,或更改标签的数量或位置),请使用scale_x_date(..)
。底座R,手动轴
使用
axis
。然后,我们可以向图和/或轴添加内容。很不幸..一旦使用这种方法“抓住了”,x轴就不像人们希望的那样简单地是
1:length(df$var)
。如果查看bp
对象,您将看到它是一个矩阵(行数为length(df$var)
),其中的值是x轴位置。请注意,它开始于1之前,并在nrow(df)
之后:为此,我们可以在日期的定位中使用这些值。
13
和5
的使用完全是任意的,取决于您的偏好和数据大小。您可以通过
labels=
参数完全控制文本。例如,可以使用以下命令来更接近默认的ggplot格式:base R,自动x轴标签
使用公式,如How to put date on barplot() x-axis?所示:
请注意,这不会向轴添加记号。可以使用
axis.lty=1
将它们相加,但是每个条形图都有一个技巧,对这些数据没有用处。