Я генерирую графики для некоторых данных, но число тиков слишком мало, мне нужно больше точности при чтении.
Есть ли способ увеличить количество тактов на оси в ggplot2?
Я знаю, что могу сказать ggplot использовать вектор в качестве тиков оси, но я хочу увеличить количество тиков для всех данных. Другими словами, я хочу, чтобы число тиков было рассчитано на основе данных.
Возможно, ggplot делает это внутренне с помощью некоторого алгоритма, но я не мог найти, как он это делает, чтобы изменить в соответствии с тем, что я хочу.
by
аргумент для разных шкал чисел, т. Е. 0,5 - это хорошее значение для этих данных, диапазон которых равен c (-3,3), но это не очень хороший диапазон для данных, диапазон которых это с (0,5000). Есть ли какая-то функция, которая вычисляет это?max-min/30
довольно распространенного «ведра» размер ... но это может или не может быть хорошей отправной точкой для вас.scale_x_date(date_breaks = "5 months", date_minor_breaks = "1 months")
coord_cartesian
следует использовать вместоxlim
. stackoverflow.com/questions/25685185/…На основании комментария Даниэля Кризиана вы также можете использовать
pretty_breaks
функцию изscales
библиотеки, которая импортируется автоматически:Все, что вам нужно сделать, это ввести желаемое количество тиков
n
.Чуть менее полезное решение (так как вам нужно снова указать переменную данных), вы можете использовать встроенную
pretty
функцию:источник
scales
но не добавляет функции в ваше пространство имен. Поэтому вы можете вызывать их без импорта какscales::pretty_breaks(n = 10)
.Вы можете указать аргумент функции
scale
, и ggplot будет использовать эту функцию для вычисления местоположений тиков.источник
number_ticks
. Это уже было реализовано вpretty_breaks {scales}
. Отсюда:ggplot(dat, aes(x,y)) + geom_point() + scale_x_continuous(breaks=pretty_breaks(n=10)) + scale_y_continuous(breaks=pretty_breaks(n=10))
require(scales)
2) это, кажется, предотвращает мои разрывы, появляющиеся в научной нотации, следовательно, 1e6 изменяется на 1000000 ??pretty
безscales
пакета, просто предоставьте значения в качестве аргумента. Например:(breaks=pretty(dat$x, n=10))
В следующей версии v3.3.0
ggplot2
будет возможностьn.breaks
автоматически генерировать перерывы дляscale_x_continuous
иscale_y_continuous
источник
Дополнительно,
Работает для дискретных или дискретных масштабированных данных по оси x (т. Е. Округление не требуется).
источник