Изменить метки галочки оси X ggplot в R
-
Используйте
scale_x_discrete
для изменения меток оси Xggplot
в R -
Используйте
scale_x_discrete
с пользовательской функцией для изменения меток оси Xggplot
в R

В этой статье будет рассказано, как изменить метки деления оси X ggplot
в R.
Используйте scale_x_discrete
для изменения меток оси X ggplot
в R
scale_x_discrete
вместе с scale_y_discrete
используются для расширенного управления метками и пределами масштаба графика. В этом случае мы используем scale_x_discrete
для изменения меток осиx
для объектов ggplot
. Обратите внимание, что первый объект ggplot
представляет собой гистограмму, основанную на наборе данных diamonds
. График использует столбец cut
и отображает количество каждого типа на оси y
. Ось x
имеет заголовок по умолчанию -cut
, который можно изменить, передав строку в качестве первого аргумента scale_x_discrete
. В качестве альтернативы, мы можем передать определенные строковые значения для каждой метки, построив вектор и назначив его параметру labels
. Оба графика рисуются бок о бок с помощью функции grid.arrange
, входящей в пакетgridExtra
.
library(ggplot2)
library(gridExtra)
p1 <- ggplot(diamonds, aes(cut)) + geom_bar(fill = "orange") + scale_x_discrete("Cut")
p2 <- p1 + scale_x_discrete("Cut Type", labels = c("Fair" = "F","Good" = "G", "Very Good" = "VG","Premium" = "P","Ideal" = "I"))
grid.arrange(p1, p2, ncol = 2)
Еще один полезный метод изменения меток на оси x
- передача объекта функции в качестве параметра labels
. В следующем фрагменте кода используется функция abbreviate
, чтобы автоматически сокращать метки, а затем рисовать графики в виде двух столбцов.
library(ggplot2)
library(gridExtra)
p1 <- ggplot(diamonds, aes(cut)) + geom_bar(fill = "orange") + scale_x_discrete("Cut")
p2 <- p1 + scale_x_discrete("Cut Type", labels = c("Fair" = "F","Good" = "G", "Very Good" = "VG","Premium" = "P","Ideal" = "I"))
p3 <- p1 + scale_x_discrete("Cut Type", labels = abbreviate)
grid.arrange(p2, p3, ncol = 2)
scale_x_discrete
работает аналогично на разных графиках, и применима методика манипуляции метками, как показано в следующем примере. А именно, из набора данных mpg
построено несколько диаграмм рассеяния.
library(ggplot2)
library(gridExtra)
p1 <- ggplot(mpg, aes(manufacturer, cty)) + geom_point()
p2 <- ggplot(mpg, aes(manufacturer, cty)) + geom_point() +
scale_x_discrete(labels = abbreviate)
p3 <- ggplot(mpg, aes(manufacturer, cty)) + geom_point(colour = "blue") +
scale_x_discrete(labels = abbreviate)
grid.arrange(p1, p2, p3, nrow = 3)
Используйте scale_x_discrete
с пользовательской функцией для изменения меток оси X ggplot
в R
Параметр scale_x_discrete
labels
может принимать пользовательский объект функции, чтобы соответствующим образом изменять метку каждой отметки. В этом случае мы реализовали функцию capitalize_all
, которая сначала сокращает каждую метку, а затем преобразует начальный символ строки в заглавную букву. Обратите внимание, что встроенные функции paste
, toupper
, substring
и abbreviate
используются для реализации функциональности capitalize_all, но полный обзор этих методов выходит за рамки данной статьи. Страницы руководства могут отображаться с использованием нотации ?function_name
в консоли R.
library(ggplot2)
library(gridExtra)
capitalize_all <- Vectorize(function(x) {
s <- abbreviate(x)
paste(toupper(substring(s, 1,1)), substring(s, 2), sep="", collapse=" ")
})
ggplot(mpg, aes(manufacturer, cty)) + geom_point(aes(colour = trans)) +
scale_x_discrete(labels = capitalize_all)
Сопутствующая статья - R Plot
- Добавить прозрачный прямоугольник на коробчатую диаграмму в R
- Создавайте бок о бок Boxplots в R
- Функция scale_colour_discrete в R
- Функция scale_x_discrete в R
- Функция scale_y_continuous в R
- Добавление линии на график с помощью функции Lines() в R