ggplot2, изменение порядка оси y - PullRequest
0 голосов
/ 13 июля 2020

Это мой код:

library(readxl)
ttable <- read_excel("/Users/jhan/Downloads/test.xlsx")

library(ggplot2)  # Data visualization
library(dplyr)   # Data manipulation
library(gridExtra)

data.test <- ttable[,c('patient', 'zpati')]
data.test <- na.omit(data.test)
data.test <- data.test %>% group_by(patient) %>% summarise(zpati = sum(zpati), .groups = 'drop') %>% mutate(Procent = paste0(round((zpati/sum(zpati)*100),1), '%'))
data.test <- arrange(data.test,Procent)

pie3 = ggplot(data.test, aes(x="", y=Procent, fill=patient)) + geom_bar(stat="identity", width=1)+ 
coord_polar("y", start=0) + 
geom_text(aes(label =Procent),size = 3, position = position_stack(vjust = 0.5))+
  
scale_fill_manual(values=c("#339ed1", "#c1d333", "#eaae33", "#87888a"), limits=c("GKV","Privat","BG/Unfall","Krankhaus")) +
 

labs(x = NULL, y = NULL, fill = NULL, title = "Patientenstruktur")+ theme_classic() + 
theme(axis.line = element_blank(),
          axis.text = element_blank(),
          axis.ticks = element_blank(),
          legend.direction = "vertical",
          legend.position = "bottom",
          legend.key.size = unit(0.25, "cm"),
          legend.key.width = unit(0.25,"cm"),
          legend.text = element_text(size = 8),
                                     
          plot.title = element_text(hjust = 0.5, color = "#339ed1")) 
pie3

Это мой код, и я хочу переупорядочить свои y значения, такие как порядок fill("GKV","Privat","BG/Unfall","Krankhaus"), моя Y-переменная не сохраняется как фактор в этом IST номера. и я экспортирую данные и создаю много графиков. поэтому число будет изменяться в соответствии с данными.

введите описание изображения здесь

1 Ответ

0 голосов
/ 13 июля 2020

Если вы гарантируете, что ваша y -переменная сохранена как фактор, вы можете установить уровни (порядок) этих факторов. Это будет выглядеть примерно так:

pie3 = ggplot(data.test, aes(x="", y=factor(Procent,levels = c("GKV","Privat","BG/Unfall","Krankhaus"), fill=patient))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...