【问题标题】:R: how to visualize data using bwplot()R:如何使用 bwplot() 可视化数据
【发布时间】:2015-02-15 15:32:27
【问题描述】:
    library(lattice)
    dd = data.frame(person = c("A", "A", "A", 
                               "B", "B", "B",
                               "C", "C", "C"),
                    score = c("100", "50", "90",
                              "20", "40", "60",
                              "10", "50", "30"),
                    year = c("2001", "2002", "2003",
                             "2001", "2002", "2003",
                             "2001", "2002", "2003"))
    >dd
      person score year
    1      A   100 2001
    2      A    50 2002
    3      A    90 2003
    4      B    20 2001
    5      B    40 2002
    6      B    60 2003
    7      C    10 2001
    8      C    50 2002
    9      C    30 2003

我有兴趣了解这些年来人们的分数分布如何变化。我想使用箱线图来显示这些信息。我想使用lattice 库中的bwplot()。我在可视化和编码方面遇到了麻烦……所以我知道我希望分数在 1 个轴上。在另一个轴上,我想要年份。因此,对于每一年,我都想绘制 A、B 和 C 人的分数分布。所以我总共想要 3 个箱线图,一个用于 2001 年的分数,一个用于 2002 年的分数,一个用于2003. 但是,我尝试过

    bwplot(dd$score, groups = dd$year)

但这并没有成功。

编辑:我尝试了bwplot(score ~ year, dd, horiz = F),但我得到了这个。

【问题讨论】:

    标签: r visualization


    【解决方案1】:

    我猜你的意思是这样的

    dd$score <- as.numeric(as.character(dd$score))
    bwplot(score~year, dd, horiz=FALSE)
    

    (假设year 是样本数据中的一个因素。如果它是数字,请使用factor(year)

    请注意,大多数 Lattice 函数都需要一个公式作为第一个参数,而不是一个简单的向量;通常您在 Lattice 中使用 groups= 来表示不同的颜色,而只需在公式中提供一个因子变量将触发分类行为。

    【讨论】:

    • 谢谢,但是当我运行代码时,我得到了不同的情节。请参考我的编辑。
    • @Adrian sessionInfo() 说您正在运行哪个版本的 Lattice?您是否重新定义了F?我已更新为明确使用 FALSE。
    • @Adrian 我刚刚注意到您的分数值是出于某种原因考虑的因素。您是否出于某种原因将它们作为角色传递?它们对我来说似乎是数值。我已经在我的示例中进行了转换。您是否使用发布的示例数据进行了测试?!?
    • 顺便问一下,你知道我如何旋转 x 轴标签,使它们垂直吗?
    • 尝试搜索“[r] lattice rotate axis”,看看你想出了什么。
    猜你喜欢
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 2016-03-19
    • 2014-07-08
    • 1970-01-01
    相关资源
    最近更新 更多