Как я могу сделать так, чтобы мои вертикальные метки помещались в моем окне черчения? - PullRequest
19 голосов
/ 09 ноября 2010

Я создаю гистограмму в R, которая отображает частоту нескольких событий в векторе.Каждое событие представлено целым числом в диапазоне [1, 9].Я отображаю метку для каждого отсчета вертикально под графиком.Вот код:

hist(vector, axes = FALSE, breaks = chartBreaks)
axis(1, at = tickMarks, labels = eventTypes, las = 2, tick = FALSE) 

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

Ответы [ 4 ]

10 голосов
/ 09 ноября 2010

Посмотрите на help(par), в частности поля mar (для поля) и oma (для внешнего поля).Это может быть так просто, как

par(mar=c(5,3,1,1))   # extra large bottom margin
hist(vector, axes = FALSE, breaks = chartBreaks)
axis(1, at = tickMarks, labels = eventTypes, las = 2, tick = FALSE) 
9 голосов
/ 09 ноября 2010

Это не похоже на работу для гистограммы - событие не является непрерывной переменной. Барплот или точечный участок может быть более подходящим.

Некоторые фиктивные данные

set.seed(123)
vec <- sample(1:9, 100, replace = TRUE)
vec <- factor(vec, labels = paste("My long event name", 1:9))

Барплот создается с помощью функции barplot() - для удобства мы предоставляем ему счетчик каждого события, используя функцию table(). Здесь нам нужно повернуть метки с помощью las = 2 и создать дополнительное пространство для меток на полях

## lots of extra space in the margin for side 1
op <- par(mar = c(10,4,4,2) + 0.1)
barplot(table(vec), las = 2)
par(op) ## reset

Точечный график создается с помощью функции dotchart() и имеет дополнительное удобство для сортировки полей графика для нас

dotchart(table(vec))

Точечный график имеет преимущество перед графиком использования гораздо меньшего количества чернил для отображения одной и той же информации и фокусируется на различиях в счетах по группам, а не на их значениях.

Обратите внимание, как я настроил данные как фактор. Это позволяет нам сохранять метки событий в качестве меток для фактора - таким образом автоматизируя маркировку осей на графиках. Это также естественный способ хранения данных, который, как я понимаю, у вас есть.

0 голосов
/ 09 ноября 2010

Возможно, вы захотите посмотреть на эту запись из перекрестной проверки

0 голосов
/ 09 ноября 2010

Возможно добавление \ n в ваши ярлыки, чтобы они переносились на 2 строки?Это не оптимально, но может работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...