【问题标题】:ggplot geom_bar() fill not coloring bars on plotggplot geom_bar() 在绘图上填充不着色条
【发布时间】:2019-08-19 08:49:57
【问题描述】:

在 geom_bar 上使用填充参数不会为我的绘图上的条形着色。我正在使用来自 Titanic 数据集 here 的 train.csv。

passengers <- read.csv('../input/train.csv')

我尝试将填充移到 aes() 之外,尝试将 aes 移至 ggplot() 函数。

这是我在泰坦尼克号数据集上使用的代码

ggplot(data = passengers) + 
    geom_bar(mapping = aes(x=Survived, fill = Pclass))

这是我用作模板的代码,它在钻石数据中内置的 ggplot 上运行良好。

ggplot(data = diamonds) + 
  geom_bar(mapping = aes(x = cut, fill = cut))

我只是不断地用 geom_bar 为 Survived 使用 Pclass 作为填充获得灰色条。

【问题讨论】:

  • 如果没有访问 passengers 的任何人都很难提供帮助,您的数据框架是您重新组织泰坦尼克号数据集的原因。
  • 卫生署!对于那个很抱歉。已使用数据集的链接以及我读入数据框的文件进行了编辑。
  • 请将数据直接添加到您的问题中,而不是作为链接。
  • Pclass 是数字吗?如果是这样,请尝试在它周围扔一个as.character()

标签: r ggplot2 kaggle


【解决方案1】:

你可以试试 as.factor()

ggplot(data = passengers) + 
geom_bar(mapping = aes(x=Survived, fill = as.factor(passengers$Pclass)))

可能你的变量不是因素

【讨论】:

    【解决方案2】:

    这对我有用:

    ggplot(data = passengers) + 
       geom_bar(mapping = aes(x=Survived, fill = as.character(Pclass)))
    

    【讨论】:

    • 你知道这是为什么吗?我检查了 typeof(diamonds$cut) 和 typeof(titanic$Pc​​lass)。两者都是整数。什么会导致它在一个而不是另一个上工作?
    • @Michael - 使用str() - cut 显示为有序因子。恐怕我不肯定为什么有序因子被视为相对于typeof() 的整数。
    • 用 as.factor() 试过了,效果也不错。我想我再看看 ?geom_bar() 和 ggplot2-specs。没有看到任何明确说明它需要成为一个因素或角色的东西。只是我必须记住的事情。谢谢好心的先生!
    猜你喜欢
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 2020-07-10
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多