繁体   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