簡體   English   中英

Geom_bar plot 每個 plot 僅顯示一個條形

[英]Geom_bar plot only shows one bar per plot

我正在嘗試使用geom_bar比較兩個 NBA 球員的各種統計數據,但由於某種原因,它只為每個統計數據繪制一個條形圖。 我想在每個 plot 上都有兩個條,以查看兩個玩家之間的比較,或者換句話說,每個 plot 上的紅色和藍色

這是我嘗試過的

url <- paste0('https://www.basketball-reference.com/leagues/NBA_2022_per_game.html')

# scrape the url
webpage <- read_html(url)
hp_table <-
  html_nodes(webpage, "table")
nba_table <- html_table(hp_table)
# convert to dataframe
df <- as.data.frame(nba_table)
df <- df[,-1]
df

longer <- df %>% pivot_longer(-Player)

player_list <- c('Precious Achiuwa', 'Steven Adams')

filtered <- longer %>% filter(Player == player_list)

ggplot(filtered, aes(x = Player, y = value)) +
  geom_bar(aes(fill = Player),
           stat = 'identity')+
  facet_wrap(~name, scales = 'free_y')+
  theme(axis.text.x = element_blank())

每個地塊一個條形圖

url <- paste0('https://www.basketball-reference.com/leagues/NBA_2022_per_game.html')

# scrape the url
webpage <- read_html(url)
hp_table <-
  html_nodes(webpage, "table")
nba_table <- html_table(hp_table)
# convert to dataframe
df <- as.data.frame(nba_table)
df <- df[,-1]
df <- df %>% pivot_longer(cols = Pos:PTS) %>% 
  mutate(value = as.numeric(value)) %>% 
  filter(!is.na(value)) %>% 
  filter(Player %in% c("Precious Achiuwa", "Steven Adams"))

ggplot(df, aes(x = Player, fill = Player, y = value)) +
  geom_bar(stat = "identity", position = "dodge") + 
  facet_wrap(~name, "free_y") + 
  theme(axis.text.x = element_blank())

  • 您的 pivot_longer 指定不正確
  • 即使是這樣,您也會有重疊條,因為您沒有在 ggplot2 調用中指定 position = "dodge"。

阿丘瓦 vs 亞當斯

暫無
暫無

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

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