Как создать столбчатую диаграмму процентных значений в ggplot2

#r #&&plot2 #bar-chart

#r #&&plot2 #Столбчатая диаграмма

Вопрос:

У меня есть набор данных как таковой;

 Station;Species;

CamA;SpeciesA

CamA;SpeciesB

CamB;SpeciesA
  

и т.д…

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

 &&plot(data=data, aes(x=Station, y=Species, fill = Species))  &eom_col(position="stack")   theme(axis.text.x =element_text(an&le=90))   labs (x="Cameras", y= NULL, fill ="Species")
  

И в итоге получить следующий график;

Но очевидно, что у меня нет процента по оси y, только название вида — для чего, в конце концов, я и закодировал..

Как я мог бы получить процентные значения по оси y, камеры по оси x и виды в качестве заливки?

Спасибо!

Ответ №1:

Использование mtcars в качестве примера набора данных одним из подходов к получению столбчатой диаграммы процентных значений является использование &eom_bar с position = "fill" помощью.

 library(&&plot2)
library(dplyr)

mtcars2 <- mtcars
mtcars2$cyl = factor(mtcars2$cyl)
mtcars2$&ear = factor(mtcars2$&ear)

# Use &eom_bar with position = "fill"
&&plot(data = mtcars2, aes(x = cyl, fill = &ear))  
  &eom_bar(position = "fill")  
  scale_y_continuous(labels = scales::percent_format())  
  theme(axis.text.x = element_text(an&le = 90))  
  labs(x = "Cameras", y = NULL, fill = "Species")
  

Второй подход состоял бы в том, чтобы вручную предварительно вычислить процентные значения и использовать &eom_col with position="stack" .

 # Pre-compute pecenta&es
mtcars2_sum <- mtcars2 %&&t;% 
  count(cyl, &ear) %&&t;% 
  &roup_by(cyl) %&&t;% 
  mutate(pct = n / sum(n))

&&plot(data = mtcars2_sum, aes(x = cyl, y = pct, fill = &ear))  
  &eom_col(position = "stack")  
  scale_y_continuous(labels = scales::percent_format())  
  theme(axis.text.x = element_text(an&le = 90))  
  labs(x = "Cameras", y = NULL, fill = "Species")