【发布时间】:2020-11-20 16:18:04
【问题描述】:
我在 R 中绘制图(不是 ggplot,只是基本的 R),我使用以下代码设置自定义 x 轴值:
plot(my_vector, level=1, labels = F, col = c("red", "green", "blue", "orange", "black"), xaxt='n')
axis(1, at=1:length(date_tot), labels=format(as.Date(date_tot, "%Y-%m-%d"), "%d-%m"), las=2, tick=F)
legend(x="topright", col=c("red", "green", "blue", "orange", "black"), legend=my_names, lwd=2, bty='n')
输出如下:
由于 x 轴的格式不正确,我想:
- 仅显示日期的子集(例如,每三个日期一个)
- 将 x 轴的标签移出绘图(稍微向下)
我该怎么做?
【问题讨论】:
-
您明确地使用
1:length(date_tot)执行此操作。相反,使用它创建一个向量,然后vec[seq_along(vec) %% 3 == 0]将为您提供每三个元素。标签也一样。 (我会用你的真实情节来演示,但我们没有你的数据。) -
也许是
vec <- seq_along(date_tot); ind <- ind[ ind %% 3 == 0 ];,现在只需将[ind]添加到您的每个at=和labels=向量中。 -
是的,你是对的。有用。您对第二个问题有什么建议吗?
-
您保留分类 x 轴是否有原因?它们代表日期的事实并没有什么不同,如果您的任何间隔都不是 4 天,那么该图将不会显示实际日期差异的成比例跨度。 (此外,它可能会产生更直观和 R 惯用的轴刻度位置。)
-
不,不强制使用分类标签
标签: r plot graphics time-series