首页 > 解决方案 > 基础 r 图中的轴不均匀

问题描述

我想要一个轴与附加图像相似的图。我对附件的 X 轴特别感兴趣。

通常,显示例如 0 到 10 的轴。我的数据位于 x 轴的 5-7 处。所以我希望我的25%x 轴显示0-5,其余75%的显示5-10。但我不是指像 ggpplot 这样的东西。

我正在使用 base R. 并且图像也是使用 R base 创建的,我猜。

我应该如何制作像这个例子一样的情节?谢谢

谢谢您的帮助。我添加了图像,希望这次它会出现。

图 1

这是一个很好的技巧,但想象一下这是我的数据,

X <- ("A", "B", "C", "D", "E", "F", "G", "H") #基本是一些湖泊的名字

Y <- (0.891338, 0.962008, 0.929528, 1.034015, 0.883051, 0.887387, 0.795245, 0.862037)

我想要一个图表,其中 x 变量显示我的湖泊名称,y 变量显示值。我需要让y轴从0到1.3(因为我需要为图表上的每个点添加SD和一些标签;所以它需要足够大)。但可以看出,我没有低于 ~ 0.70 的 y 值。所以我希望我的 y 变量的 0 到 0.70 之间的区域只形成我的 y 轴的一小部分,比如总数的 15%。我想这样做有两个原因。a) y 轴从 0 开始,b) 因为我的 y 值的差异很小,我希望这些值所在的实际区域显示在 y 轴的较大部分,以便可以看到差异。

为了更清楚地说明这一点,我添加了我所做的第二张图片。我只需要在此图上的 y 轴上添加 0 到 0.7,但在 0.7 之前仅显示一个间隔(可能带有 1、2 或 3 个标签和刻度)

[图像 2

再次感谢各位。你太不可思议了。

标签: plotaxis-labels

解决方案


根据问题的编辑编辑我的帖子。

人们使用逐渐变化的轴,例如您展示的图像,这可能是记录的 x 轴。要考虑的第一个问题是,如果您希望您的 y 轴逐渐变化,还是分段变化。我为你绘制了两​​种方式。

X <- c("A", "B", "C", "D", "E", "F", "G", "H") #Basically names of some lakes
Y <- c(0.891338, 0.962008, 0.929528, 1.034015, 0.883051, 0.887387, 0.795245, 0.862037)

# continuously scaling
plot(1:length(X), exp(Y), # try changing exp() to other base for more or less scaling.
     ylim = exp(c(0, 1.3)), xaxt = "n", yaxt = "n",
     xlab = "Lakes", ylab = "Something")

# add x-axis label
axis(1, 1:length(X), X)
# add y-axis label
axis(2, exp(seq(0,1.3, by = 0.1)),
            seq(0,1.3, by = 0.1), las =1)

在此处输入图像描述

# Piece-wise scale
plot(1:length(X), Y, 
     ylim = c(0.5, 1.3), # you could adjust 0.5 to give you more or less room to show values between 0 to 0.7 
     xaxt = "n", yaxt = "n", # we will add a and y-axis label later
     xlab = "Lakes", ylab = "Something")

# add x-axis label
axis(1, 1:length(X), X)
# add y-axis label 
# note that 0 to 0.7 part is "fake". We just add labels to 0.5-0.7 interval, which you could adjust to being bigger or smaller.
axis(2, c(seq(0.5,to = 0.7, length.out=8), seq(0.8,1.3, by = 0.1)), 
     c(seq(0, 0.7, length.out = 8), seq(0.8,1.3, by = 0.1)), las = 1)

abline(h = 0.7, lty = 3) # maybe add a line to indicate that axis changes here.

在此处输入图像描述


推荐阅读