Неровная ось в базовом графике - PullRequest
0 голосов
/ 24 октября 2019

Я хочу иметь сюжет, оси которого похожи на прикрепленные изображения. Меня особенно интересует ось X вложения.

Как правило, ось, которая показывает, например, от 0 до 10. Мои данные расположены где-то в 5-7 от оси x. Поэтому я хочу, чтобы моя ось 25% х показала 0-5, а остальные 75% - 5-10. Но я не имею в виду что-то вроде ggpplot.

Я работаю с базой R. И, я думаю, изображение также создается с помощью базы R.

Как мне построить сюжет, как в примере? Спасибо

Спасибо за вашу помощь. Я добавил изображение, надеюсь, на этот раз оно появится.

image 1

Это был хороший трюк, но представьте, что это мои данные,

X <- («A», «B», «C», «D», «E», «F», «G», «H») # В основном названия некоторых озер </p>

Y <- (0,891338,0.962008, 0.929528, 1.034015, 0.883051, 0.887387, 0.795245, 0.862037) </p>

Я хочу иметь график с переменными x, показывающими названия моих озер, и переменной y, показывающей значения. Мне нужно, чтобы ось Y была от 0 до 1,3 (потому что мне нужно добавить SD и некоторые метки к каждой точке на графике; поэтому она должна быть просторной). Но, как видно, у меня нет значений у ниже ~ 0,70. Поэтому я хочу, чтобы область от 0 до 0,70 моей переменной y составляла лишь небольшую часть моей оси y, скажем, 15% от общей. Я хочу сделать это по двум причинам. a) ось y, начинающаяся с 0, b) поскольку различия в моих значениях y невелики, я хочу, чтобы фактическая область, в которой эти значения будут расположены, отображалась в большей части оси y, чтобы можно было увидеть различия.

Чтобы уточнить это, я добавил второе изображение того, что я сделал. Все, что мне нужно, это добавить от 0 до 0,7 к оси Y на этом графике, но показывать его можно только на один интервал до 0,7 (и, возможно, с 1, 2 или 3 метками и галочками)

[image 2

Еще раз спасибо, ребята. Ты невероятный.

1 Ответ

0 голосов
/ 25 октября 2019

Редактирование моего поста на основе правок вопроса.

Люди, использующие ось, которая постепенно меняется, подобно изображенному вами изображению, которое, вероятно, является зарегистрированной осью 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)

enter image description here

# 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.

enter image description here

...