簡體   English   中英

Plotly 堆疊水平條形圖在 R 中的百分比

[英]Plotly stacked horizontal bar chart as percentages in R

假設我有一個數據集,其中包含每個城鎮和城鎮組(比方說州)的男性和女性百分比:

town <- 1:4
females <- c(64.5, 86.3, 35.7, 45.6)
males <- 100 - females
state <- c(1, 2, 2, 1)
df <- c(town, females, males, state)

我想做的是使用 Plotly package 生成一個堆疊的水平條形圖,我將有 2 個條形圖(每個州一個)以及這些條形圖中每個性別的平均百分比。 平均男性和女性的總和應為 100%。 我知道我必須轉換我擁有的數據,也許使用 group_by state,但我不知道具體怎么做。

提前致謝!

我認為您可能打算像這樣設置數據框:

df <- data.frame(town = town, females = females, males = males, state = factor(state))

而不是使用將創建向量的c()

可以使用pivot_longer中的dplyr來重塑數據,這樣你就有了一個單獨的性別和百分比列(在每個城鎮和州內)。

然后,您可以通過按stategender分組來計算percentage_mean

library(tidyverse)
library(plotly)

df %>%
  pivot_longer(cols = c(females, males), names_to = "gender", values_to = "percentage") %>%
  group_by(state, gender) %>%
  summarise(percentage_mean = mean(percentage)) %>%
  plot_ly(
    x = ~percentage_mean,
    y = ~state,
    color = ~gender,
    type = "bar",
    orientation = "h"
  ) %>%
  layout(
    barmode = "stack"
  )

Plot

plotly 中的水平條形圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM