R图中的轴不均匀

时间:2011-09-27 00:33:55

标签: r plot

是否可以在R中绘制不均匀的轴?我知道我可以在特定位置指定标签,但我的意思是,我希望我的图表的特定部分可以展开。例如,想象一个X轴,例如:

-10 -5 0 1 2 3 4 5 10

上述每个值之间的间距相等。

1 个答案:

答案 0 :(得分:3)

你需要考虑你的水平因素,比如“fac”,然后绘制。稍后使用带有labels = as.character(fac)的axis()。

 dat <- data.frame(x=factor(c(-10 ,-5, 0, 1, 2, 3, 4, 5, 10)), y=1:9)

 with(dat, plot(x, y))   # a step-like plot
 with(dat, plot(as.numeric(x), y, type="p", xaxt="n")) # points instead of steps
 axis(1, at=1:9, labels=as.character(dat$x))           # the "irregular" axis

进一步思考@Ben Bolker的问题,还应该可以定义一个辅助x值来确定在水平线上绘制“x =”和axis“at =”坐标,然后使用unique(as.character(.))将“real x”应用为axis的“labels =”参数,如上所示,但不需要构建因子。使用这种方法可以实现更复杂的方案,其中辅助变量的特定范围的连续值可以用于绘制,但是在这些范围的边界处为标签构造截断值。我认为在构建实现​​示例之前需要进一步的设计理由和规范。