Как указать значение первого тика на графике с помощью ggplot2 без изменения исходного значения? - PullRequest
1 голос
/ 09 апреля 2020

Вот мои данные:

X,Y
0,725
2500,695
4750,629
5000,605
5500,598
7000,616
8500,594
0,725
2250,695
4750,629
6500,640
9750,647
0,725
2250,695
4750,629
6500,640
10000,680

Вот мой текущий код (исключая группу geom_segments, необходимых для этого графика):

ggplot(sb, aes(x= X,y= Y)) +
  labs(x = "\nDistance in Feet", y = "Feet Above Mean Sea Level\n") + #\n allows for a line break
  geom_line(color = "orange") +
  scale_y_continuous(breaks = seq(0, 800, by = 50), lim = c(0,800), expand = c(0, 0))  +
  scale_x_continuous(breaks = seq(0, 10000, by = 1000), lim = c(0,12000), expand = c(0, 0)) + 
  theme_bw() + 
  theme(axis.line = element_line(colour = "black"),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.border = element_blank(),
        panel.background = element_blank()) +
  theme(text=element_text(size=16,  family="Calibri"))  #change font

Вот график, который заполняет только код, который я разместил (без сегментов geom_line): enter image description here

Я хотел бы, чтобы исходная точка оставалась равной 0,0, но чтобы первый тик оси Y был начинать со значения 200 вместо того, чтобы начинать с 50. Но я бы хотел, чтобы тики с шагом 50 заканчивались на 800. Таким образом, первый тик будет 200, затем 250 et c до 800. Я пытался установка пределов от lim = c (0,800) до lim = c (200,800), но в котором только 200 было источником, а не 0. Я хочу сохранить 0 в качестве источника. График представляет собой поперечное сечение грунта, скучного под землей, который заканчивается около 200, поэтому область под отметкой 200 является пустым пространством после добавления вертикальных линий. Я могу добавить график со всеми geom_lines, если он поможет вам визуализировать его больше. Спасибо!

1 Ответ

2 голосов
/ 09 апреля 2020

Изменить масштаб на ось Y

Вы можете сделать это, изменив scale_y_continuous breaks следующим образом:

... +
scale_y_continuous(breaks = c(0, seq(200, 800, by = 50)), lim = c(0,800), expand = c(0, 0))  +
...

Ваш график будет выглядеть так:

enter image description here

Полный окончательный код:

ggplot(sb, aes(x= X,y= Y)) +
  labs(x = "\nDistance in Feet", y = "Feet Above Mean Sea Level\n") + #\n allows for a line break
  geom_line(color = "orange") +
  scale_y_continuous(breaks = c(0, seq(200, 800, by = 50)), lim = c(0,800), expand = c(0, 0))  +
  scale_x_continuous(breaks = seq(0, 10000, by = 1000), lim = c(0,12000), expand = c(0, 0)) + 
  theme_bw() + 
  theme(axis.line = element_line(colour = "black"),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.border = element_blank(),
        panel.background = element_blank()) +
  theme(text=element_text(size=16,  family="Calibri"))  #change font

Надеюсь, это поможет.

...