这是一个新手问题。 我在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")