Увеличить количество тиков оси

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

Есть ли способ увеличить количество тиков оси в ggplot2?

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

Возможно, ggplot делает это внутренне с некоторым алгоритмом, но я не мог найти, как он это делает, изменить в соответствии с тем, что я хочу.

Вы можете переопределить масштаб по умолчанию ggplots, изменив scale_x_continuous и / или scale_y_continuous . Например:

 library(ggplot2) dat <- data.frame(x = rnorm(100), y = rnorm(100)) ggplot(dat, aes(x,y)) + geom_point() 

Дает вам следующее:

введите описание изображения здесь

И переопределение шкал может дать вам что-то вроде этого:

 ggplot(dat, aes(x,y)) + geom_point() + scale_x_continuous(breaks = round(seq(min(dat$x), max(dat$x), by = 0.5),1)) + scale_y_continuous(breaks = round(seq(min(dat$y), max(dat$y), by = 0.5),1)) 

введите описание изображения здесь

Если вы хотите просто «увеличить» на определенной части графика, посмотрите на xlim() и ylim() соответственно. Хорошее понимание также можно найти здесь, чтобы понять и другие аргументы.

Вы можете использовать встроенную pretty функцию:

 ggplot(dat, aes(x,y)) + geom_point() + scale_x_continuous(breaks = pretty(dat$x, n = 10)) + scale_y_continuous(breaks = pretty(dat$y, n = 10)) 

Основываясь на комментарии Даниэля Крициана , вы также можете использовать функцию pretty_breaks из библиотеки scales , которая автоматически импортируется:

 ggplot(dat, aes(x,y)) + geom_point() + scale_x_continuous(breaks = scales::pretty_breaks(n = 10)) + scale_y_continuous(breaks = scales::pretty_breaks(n = 10)) 

Все, что вам нужно сделать, это вставить количество желаемых тиков.

Вы можете предоставить аргумент функции для scale , и ggplot будет использовать эту функцию для расчета местоположений тика.

 library(ggplot2) dat <- data.frame(x = rnorm(100), y = rnorm(100)) number_ticks <- function(n) {function(limits) pretty(limits, n)} ggplot(dat, aes(x,y)) + geom_point() + scale_x_continuous(breaks=number_ticks(10)) + scale_y_continuous(breaks=number_ticks(10)) 

Дополнительно,

 ggplot(dat, aes(x,y)) + geom_point() + scale_x_continuous(breaks = seq(min(dat$x), max(dat$x), by = 0.05)) 

Работает для биндовых или дискретных масштабированных данных по оси x (т.е. округление не обязательно).

  • Как сообщить интерпретатору R, как использовать прокси-сервер?
  • Все уровни фактора в модельной матрице в R
  • Разбор JSON с R
  • Форматирование дат с помощью scale_x_date в ggplot2
  • Как создать последовательный индекс на основе переменной группировки в фрейме данных
  • Импорт двух функций с одинаковым именем с помощью roxygen2
  • Проверьте, находится ли точка в пространственном объекте, который состоит из нескольких полигонов / отверстий
  • ggplot2: изменение порядка стеков на гистограмме
  • Суммарная сумма до достижения максимума, затем повторите с нуля в следующей строке
  • Как предотвратить ifelse () от превращения объектов Date в числовые объекты
  • Преобразование матрицы данных в матрицу отсутствия присутствия
  • Interesting Posts

    Предупреждение: раздел X не заканчивается на границе цилиндра. Должен ли я заботиться / как исправить?

    Windows 10 сжимает несколько кнопок, этикеток и прочее, но большинство из них в целом отлично

    Почему NSWindow без styleMask: NSTitledWindowMask не может быть keyWindow?

    Что такое тест в Турции?

    Внедрение iframe на страницу с ограничительной политикой безопасности контента

    Снижение производительности при работе с интерфейсами на C ++?

    Почему нет регистра, который содержит более высокие байты EAX?

    Пример XML Parser DOM

    Spring MVC: разница между тегами и ?

    Ошибка: lvalue требуется в этом простом C-коде? (Тернар с назначением?)

    Перенос EF для изменения типа данных столбцов

    Набор телефонного звонка при щелчке по тексту в андроиде

    Как заставить валидацию зависеть от нажатой кнопки?

    Gnucash: как преобразовать огромный XML-файл данных в sqlite?

    Как стиль иконок, размер и тень шрифта Awesome Icons

    Давайте будем гением компьютера.