Наклонные метки оси X для коробчатых участков - PullRequest
0 голосов
/ 04 июля 2019

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

Я знаю, что код, который мне нужно добавить, - srt = 45, но где?Кроме того, как изменить код ниже, чтобы каждый визуал отображал только 3 прямоугольника?

boxplot(Transport$mph ~ Transport$CarType, main = "Mph by Car Type",
    xlab = "Car Type", ylab= "Mph", col= "grey")

В настоящее время метки оси X расположены горизонтально, поэтому отображаются не все метки.Я хочу, чтобы они были наклонены под углом 45 градусов, чтобы были видны все ярлыки.Кроме того, я хочу знать, как указать меньшее количество блокпостов в каждом визуале, так как в настоящее время в одном визуале слишком много блоков.Я счастлив, что у меня много картинок, показывающих только 3 коробочных сюжета каждый.

Ответы [ 2 ]

2 голосов
/ 04 июля 2019

В этом примере используется встроенный набор данных mtcars.Ключ заключается в том, чтобы не отображать метки оси X xaxt = "n", а затем наносить метки с помощью text.

labs <- seq_along(unique(mtcars$cyl))

boxplot(mpg ~ cyl, data = mtcars, xaxt = "n",
    main = "Mph by Car Type",
    xlab = "Car Type", ylab= "Mph", col= "grey")
text(seq_along(unique(mtcars$cyl)), par("usr")[3], 
    labels = labs, srt = 45, adj = c(1.1, 1.1), xpd = TRUE)
1 голос
/ 04 июля 2019

Чтобы настроить оси в базовом графике, вам нужно восстанавливать их по частям:

data('mpg', package = 'ggplot2')

x_labs <- levels(factor(mpg$class))
boxplot(hwy ~ class, mpg, main = "Highway MPG by car type", 
        xlab = NULL, ylab = "Highway MPG", col = "grey", xaxt = 'n')    # don't plot axis
axis(1, labels = FALSE)    # add tick marks
text(x = seq_along(x_labs), y = 9, labels = x_labs, 
     srt = 45,    # rotate
     adj = 1,    # justify
     xpd = TRUE)    # plot in margin
mtext("Car Type", side = 1, padj = 6)    # add axis label

plot with rotated labels

Это немного проще в ggplot, так как он обрабатываетмного выравнивания, отслеживание меток и т. д. для вас:

library(ggplot2)

ggplot(mpg, aes(class, hwy)) + 
    geom_boxplot(fill = 'grey') + 
    labs(title = "Highway MPG by car type", x = "Car type", y = "Highway MPG") +
    theme(axis.text.x = element_text(angle = 45, hjust = 1))

ggplot with rotated labels

...