为什么我的 R 条形图 (geom_bar) 没有根据提供的变量正确填充颜色



这是一个新手问题。 我在R中使用包"nycflights13"和"tidyverse"。

library(nycflights13)  
library(tidyverse)

我正在尝试获取一个条形图,显示航空公司/航空公司的航班总数,并使其按每月发生的航班数量为每个条形着色。

我可以得到一个简单的条形图来显示以下内容:

ggplot(flights) +  
    geom_bar(mapping=aes(x=carrier))

当我尝试用月份给它上色时,它不会改变任何东西。

ggplot(flights) +  
    geom_bar(mapping=aes(x=carrier, fill=month))

上面代码生成的图形看起来完全相同。

当我做相反的事情时,它似乎有效...如果我创建一个在 x 轴上带有"月"并按载体着色的图表,它的工作方式就像我期望的那样。

ggplot(flights) +  
    geom_bar(mapping=aes(x=month,fill=carrier))

我认为这与离散变量与连续变量有关?

是的,这与离散变量与连续变量有关。 as.factor()会将月份转换为离散因子。

ggplot(flights) + 
    geom_bar(mapping=aes(x=carrier, fill=as.factor(month))) 

为了好玩,有一种方法可以覆盖geom_bar内置stat_count默认值。这需要向航班添加一个虚拟变量,用作y,并按月对数据进行排序(否则你会得到奇怪的伪影(。查看有关?geom_bar()的帮助文档。

flights$n<-1
flights%>%
  arrange(month)%>%
  ggplot(aes(carrier, n, fill = month)) +
  geom_bar(stat = "identity") +
  scale_fill_continuous(low="blue", high="red") 

相关内容

  • 没有找到相关文章

最新更新