我最近一直在与 R 进行广泛的合作,并且我有一个挑剔的绘图问题。
我附上了我当前情节的图像作为参考。如您所见,我添加了垂直线来分割部分数据输入。我有 200 个“代理”,每个人都来自不同的分类子集,这使得它们都有点不同。所以,我的目标是保持底部轴作为我的“代理”向量的索引,但我想在底部的每个细分中添加一个标签,以便更清楚地了解我为什么要分割它们与垂直线。
有什么建议么?
我最近一直在与 R 进行广泛的合作,并且我有一个挑剔的绘图问题。
我附上了我当前情节的图像作为参考。如您所见,我添加了垂直线来分割部分数据输入。我有 200 个“代理”,每个人都来自不同的分类子集,这使得它们都有点不同。所以,我的目标是保持底部轴作为我的“代理”向量的索引,但我想在底部的每个细分中添加一个标签,以便更清楚地了解我为什么要分割它们与垂直线。
有什么建议么?
你只需要这样调用axis
:
x = sin(1:100) + rnorm(100, 0,.125)
breaks = c(10,33,85, 96)
plot(x)
sapply(breaks, function(x){abline(v=x, lty=2)})
axis(1, breaks, as.character(breaks))
如果您根本不希望绘制默认刻度(即仅“中断”向量中的刻度),您只需稍微修改一下:
plot(x, axes=F)
sapply(breaks, function(x){abline(v=x, lty=2)})
axis(1, breaks, as.character(breaks))
axis(2)
box()
您没有提供任何示例数据或代码,因此我发送的代码未经测试。我称垂直线vertlines
向量和标签向量labels
。我使用垂直线和代理值的范围来定义每个类别的中点。mtext()
然后我使用该函数将它们添加到绘图中。试试看。
vertlines <- c(40, 80, 120, 140, 160, 180)
labels <- letters[1:7]
labelx <- diff(c(1, vertlines, 200))/2 + c(1, vertlines)
mtext(labels, at=labelx, side=1, line=4)