Возможно ли иметь комбинацию целых и десятичных чисел на оси Y в ggplot2? - PullRequest
0 голосов
/ 07 октября 2018

Можно ли удалить ненужные десятичные разряды, которые отображаются с помощью ggplot2?Ниже приведен раздел кода, который я сейчас использую.Мне нужны точные разрывы, так как у меня есть очень низкие значения.Я также включил грубый пример того, что показано на рисунке, который я создал для целей этого вопроса, поэтому, пожалуйста, игнорируйте все другие его аспекты!

scale_y_sqrt(expand = c(0, 0), limits = c(0, ),
             breaks = c(0, 0.01, 0.025, 0.05, 0.1, 0.25,
                        0.5, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10))

enter image description here

Ответы [ 2 ]

0 голосов
/ 07 октября 2018

Вы можете удалить конечные десятичные дроби, вручную указав метки для точек оси с помощью аргумента labels для scale_y_sqrt() или любого другого scale_*_continuous()

Код ниже должен дать вам то, что выищу:

scale_y_sqrt(
  expand = c(0, 0), limits = c(0, ),
  breaks = c(
    0, 0.01, 0.025, 0.05, 0.1, 0.25,
    0.5, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
  ),
  labels = c(
    "0", "0.01", "0.025", "0.05", "0.1", "0.25",
    "0.5", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"
  ),
)

А вот небольшой воспроизводимый пример, чтобы более полно проиллюстрировать общую мысль:

library(tidyverse)
data.frame(x = rnorm(100), y = rnorm(100)) %>%
  ggplot(aes(x = x, y = y)) +
  geom_point() +
  scale_y_continuous(
    breaks = c(-2, -1, 0, .5, 1, 2),
    labels = c("-2", "-1", "0", "0.5", "1", "2")
  )
0 голосов
/ 07 октября 2018

Вы можете удалить разрывы, не указав их в аргументе breaks функции scale_y_sqrt(), например:

scale_y_sqrt(expand = c(0, 0), limits = c(0, ),
             breaks = c(3, 4, 5, 6, 7, 8, 9, 10))

Кстати, вам не нужно указывать разрыв, если выне хочу точных перерывов.ggplot2 автоматически вычисляет, какие разрывы ставить в зависимости от диапазона ваших данных.

...