【发布时间】:2016-05-21 19:27:29
【问题描述】:
我制作了几个随机游走的时间序列图,现在我了解如何提取其中的某个部分以及如何将刻度从几年更改为几个月。但即使经过长时间的测试,我也不知道如何正确操作图表中的 x 轴。
现在,它显示了 50 年步长,并且每隔一个白色垂直网格线被标记(为什么?在每个教程中,我看到所有线都被标记)。我想要实现的是更改缩放比例,因此水平使用的空间更少(即减少x轴上所有刻度之间的空间),所以第一个刻度将是2000,第二个(不是第三个)目前的情况)在 2050 年,依此类推。我认为这应该可以通过breaks 以某种方式实现,但我无法弄清楚。最后,左右两边的剧情开始和结束都太早了,但我相信我能处理好。
剧情如下:
set.seed(21)
n <- 2500
x <- matrix(replicate(20,cumsum(sample(c(-1, 1), n, TRUE))),nrow = 2500,ncol=20)
aa <- x
rnames <- seq(as.Date("2010-01-01"), length=dim(aa)[1], by="1 month") - 1
rownames(aa) <- format(as.POSIXlt(rnames, format = "%Y-%m-%d"), format = "%d.%m.%Y")
colnames(aa) <- paste0("aa",1:k)
library("ggplot2")
library("reshape2")
library("scales")
aa <- melt(aa, id.vars = rownames(aa))
names(aa) <- c("time","id","value")
aa$time <- as.Date(aa$time, "%d.%m.%Y")
ggplot(aa, aes(x=time,y=value,colour=id,group=id)) +
geom_line()
【问题讨论】:
-
默认情况下,ggplot会在每条主网格线之间添加一条次网格线(即没有刻度线的网格线到刻度标签)。要仅包括主要网格线,请添加
scale_x_date(minor_breaks=NULL)。 (如果您在观看的教程视频中没有看到较小的网格线,我猜它们在那里,但由于分辨率不足和/或视频图像尺寸小而难以或不可能看到。)跨度> -
@eipi10 我明白了,谢谢。然而,主要问题仍然是空间。
-
你所说的“空格”是什么意思。刻度线之间的物理距离,或刻度线之间的年数?
-
标记之间的物理距离