Изменить метки галочки оси X ggplot в R

Lasha Khintibidze 30 Январь 2023 14 Июль 2021
  1. Используйте scale_x_discrete для изменения меток оси X ggplot в R
  2. Используйте scale_x_discrete с пользовательской функцией для изменения меток оси X ggplot в R
Изменить метки галочки оси X ggplot в 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)

метки отметок оси ggplot 1

Еще один полезный метод изменения меток на оси 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)

метки деления оси ggplot 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)

метки деления оси ggplot 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)

метки деления оси ggplot 4

Сопутствующая статья - R Plot