Подтвердить что ты не робот

Данные графика в порядке убывания, как показано в кадре данных

Я боролся за то, чтобы заказать и построить простой фрейм данных в виде гистограммы в ggplot2.

Я хочу построить данные так, как они отображаются, чтобы значения (переменная "количество") для соответствующих категорий (например, "люди", "мужчины") отображались от высокого к низкому.

Я следил за другими темами на этом сайте, задавая подобные вопросы, но не могу заставить это работать!

## Dataset (mesh2)

#Category                   Count

#Humans             62

#Male               40

#Female             38

#Adult              37

#Middle Aged            30

#Liver/anatomy & histology          29

#Organ Size                 29

#Adolescent                 28

#Child              21

#Liver/radiography*             20

#Liver Transplantation*     20

#Tomography, X-Ray Computed         20

#Body Weight            18

#Child, Preschool               18

#Living Donors*         18

#Infant             16

#Aged               14

#Body Surface Area              14

#Regression Analysis        11

#Hepatectomy            10

## read in data (mesh2) as object (mesh2)

mesh2 <- read.csv("mesh2.csv", header = T)

## order data by count of mesh variable

mesh2$cat2 <- order(mesh2$Category, mesh2$Count, decreasing=TRUE)

## Barplot created in ggplot2

library(ggplot2)

mesh2p <- ggplot(mesh2, aes(x=cat2, y=Count)) + geom_bar (stat="identity") +     scale_x_continuous(breaks=c(1:20), labels=c("Humans", "Male", "Female", "Adult", "MAged",   "Liver anat & hist", "Organ Size", "Adolescent",   "Child", "Liver radiog", "Liver Transplnt", "Tomog X-Ray Computed", "Body Weight", "Child Preschool", "Living Donors", "Infant", "Aged", "BSA", "Regression Analysis", "Hepatectomy"))+ theme (axis.text.x=element_text(angle=45, hjust=1))
4b9b3361

Ответ 1

Вы хотите reorder(). Вот пример с фиктивными данными

set.seed(42)
df <- data.frame(Category = sample(LETTERS), Count = rpois(26, 6))

require("ggplot2")

p1 <- ggplot(df, aes(x = Category, y = Count)) +
         geom_bar(stat = "identity")

p2 <- ggplot(df, aes(x = reorder(Category, -Count), y = Count)) +
         geom_bar(stat = "identity")

require("gridExtra")
grid.arrange(arrangeGrob(p1, p2))

Дарение:

enter image description here

Используйте reorder(Category, Count) для упорядочения Category с низкого уровня.