为什么我的 R 条形图 (geom_bar) 没有根据提供的变量适当地填充颜色?
Why is my R bar chart (geom_bar) not appropriately filling color based on the provided variable?
这是一个新手问题。我在 R 中使用 "nycflights13" 包,"tidyverse".
library(nycflights13)
library(tidyverse)
我正在尝试获取一个显示 airline/carrier 航班总数的条形图,并根据每个月发生的航班数量为每个条形图着色。
我可以得到一个简单的条形图来显示以下内容:
ggplot(flights) +
geom_bar(mapping=aes(x=carrier))
当我尝试用月份给它上色时,它没有任何改变。
ggplot(flights) +
geom_bar(mapping=aes(x=carrier, fill=month))
上面代码生成的图表看起来完全一样。
当我做相反的事情时它似乎起作用了...如果我创建一个在 x 轴上使用 "month" 并按运营商颜色的图表,它就像我期望的那样工作。
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")
这是一个新手问题。我在 R 中使用 "nycflights13" 包,"tidyverse".
library(nycflights13)
library(tidyverse)
我正在尝试获取一个显示 airline/carrier 航班总数的条形图,并根据每个月发生的航班数量为每个条形图着色。
我可以得到一个简单的条形图来显示以下内容:
ggplot(flights) +
geom_bar(mapping=aes(x=carrier))
当我尝试用月份给它上色时,它没有任何改变。
ggplot(flights) +
geom_bar(mapping=aes(x=carrier, fill=month))
上面代码生成的图表看起来完全一样。
当我做相反的事情时它似乎起作用了...如果我创建一个在 x 轴上使用 "month" 并按运营商颜色的图表,它就像我期望的那样工作。
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")