Как я могу исправить мои перемешанные метки оси X в ggplot2?
У меня есть график, на котором метки оси X не являются одинаковыми. Используя axis.text.x = element_text(), я повернул метки на -45 градусов и переместил их вверх при значении vjust = 1. Однако слова на оси x сами по себе перемешаны, и каждая отдельная метка не выглядит повернутой равномерно. Как я могу это исправить?
Во-первых, буквы кажутся неравномерно расположенными. Обратите внимание на "nh" в Эйзенхауэре, "Ca" и "rt" в Картере и "Bu" в W_Bush. Во-вторых, сами слова на этикетке расположены неравномерно, и это особенно заметно от Картера до W_Bush.
Код:
bp <-
ggplot(df1, aes(
x = df1$President,
y = df1$Count,
fill = df1$President
)) + geom_bar(stat = "identity", width = 0.5) + theme(axis.text.x = element_text(
angle = -45,
hjust = 0,
vjust = 1
)) + labs(
title = "Executive Orders Issued by President",
subtitle = "After World War II",
x = "President",
y = "Count"
) + theme(legend.position = "none")
Заранее спасибо!
1 ответ
В этом случае я бы использовал coord_flip
разместить имена по оси Y, избегая необходимости вращения. Я бы также использовал один цвет для баров и подумал о переупорядочении.
# Example data:
presidents <- structure(list(President = c("George Washington", "John Adams",
"Thomas Jefferson", "James Madison",
"James Monroe", "John Quincy Adams",
"Andrew Jackson", "Martin van Buren",
"William Henry Harrison", "John Tyler"),
Number = c(8, 1, 4, 1, 1, 3, 12, 10, 0, 17)),
row.names = c(NA, 10L),
class = "data.frame",
.Names = c("President", "Number"))
presidents %>%
ggplot(aes(reorder(President, Number), Number)) +
geom_col(fill = "skyblue3") +
coord_flip() +
labs(x = "President")