it-swarm.com.de

Zeichnen Sie die Daten in absteigender Reihenfolge, wie im Datenrahmen angezeigt

Ich habe gekämpft, um einen einfachen Datenrahmen als Balkendiagramm in ggplot2 zu bestellen und zu zeichnen.

Ich möchte die Daten so darstellen, wie sie angezeigt werden, damit die Werte (Variable 'count') für die entsprechenden Kategorien (z. B. 'humans', 'male') von hoch nach niedrig dargestellt werden.

Ich bin anderen Threads auf dieser Site gefolgt und habe ähnliche Fragen gestellt, kann dies aber nicht zum Laufen bringen!

## 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))
38
Ben G Small

Sie möchten reorder(). Hier ist ein Beispiel mit Dummy-Daten

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))

Geben:

enter image description here

Verwenden Sie reorder(Category, Count), um Category von niedrig nach hoch zu ordnen.

134
Gavin Simpson