条形图长度不匹配值

时间:2019-07-06 17:02:38

标签: r ggplot2

我正在尝试在NHL中创建自由职业者签名的堆叠条形图。因此,我希望条形图的总长度代表花费的总金额,每个填充块代表和单独签名。

我在下面编写了以下代码-但是秤发生了两个奇怪的事情。 #1-尽管是根据每个单独的总点击次数的总和排序的,但条形长度与值不匹配。 NYI的“工资”排名第二,但他们的门槛太短了。 #2,最底层的规模不大-FLA花了2300万美元,但规模显示他们花了超过1.5亿美元。我已经将薪水值作为geom_text调用提供了参考。

nhl %>% 
  group_by(TEAM) %>% 
  mutate(salary = sum(`CAP HIT`)) %>% 
  ungroup() %>% 
  mutate(Team = fct_reorder(TEAM, `CAP HIT`, sum, .desc = FALSE)) %>%
  mutate(cap = as.character(`CAP HIT`)) %>% 
  ggplot(aes(Team, salary, fill = cap)) +
  geom_bar(stat = "identity") +
  coord_flip() +
  theme_fivethirtyeight() +
  theme(legend.position = "none") +
  scale_fill_manual(values = mycolors) +
  scale_y_continuous(labels = scales::dollar) +
  labs(title = "Florida is shelling out the cash", subtitle = "Free agent signings from July 1st to July 4th") +
  geom_text(aes(label = salary))

以下是结果图表: enter image description here

作为参考,这是数据框的开头:

PLAYER                    AGE POS   TEAM  DATE     TYPE     LENGTH    VALUE `CAP HIT`
  <chr>                   <dbl> <chr> <chr> <chr>    <chr>     <dbl>    <dbl>     <dbl>
1 "Ben Chiarot\xa0"          28 D     MTL   4-Jul-19 Standard      3 10500000   3500000
2 "Cody Ceci\xa0"            25 D     TOR   4-Jul-19 Standard      1  4500000   4500000
3 "Alexander Kerfoot\xa0"    24 C, LW TOR   4-Jul-19 Standard      4 14000000   3500000

,您还可以在此处找到完整的csv数据: https://raw.githubusercontent.com/hockeyfan22/mackinawstats/master/salaries.csv

1 个答案:

答案 0 :(得分:1)

使用直方图,而不是条形图

  ggplot(aes(Team, salary, fill = cap)) +
  geom_histogram()

您可能需要使用设置stat = "identity"