【问题标题】:Date/Time Graph With Counts in RR中带有计数的日期/时间图
【发布时间】:2016-05-11 00:57:52
【问题描述】:

我目前正在尝试使用我的数据创建图表。我的信息包含在一个包含多行的 CSV 中,格式如下:date;time;hasconnection

日期 - 发生日期。

时间 - 发生的时间(早上、下午、晚上)。

hasconnection - 有互联网连接吗? (0 - 假,1 - 真)。

我的想法是创建一个包含所有这些信息的图表。例如,Y 轴将包含时间类别(早上、下午、晚上),X 轴将包含日期。该图将表示成功 Internet 连接 (1) 和无 Internet 连接 (0) 的数量(计数)。

CSV 中的数据示例:

22/04/2016;Morning;1  
22/04/2016;Night;0  
23/04/2016;Morning;1  
23/04/2016;Afternoon;1  
24/04/2016;Afternoon;0  
25/04/2016;Night;1  
25/04/2016;Night;0  
25/04/2016;Morning;1 

所需图表示例:

使用 ggplot 我可以创建 Y 轴(早上、下午……)和 X 轴(日期……)。我只是不知道如何将连接计数数据放入图表中。

非常感谢。

【问题讨论】:

    标签: r


    【解决方案1】:

    您可以使用geom_label(),利用hjust 美学以及fill 美学。我生成了一些示例数据来演示:

    set.seed(123) 
    library(dplyr)
    library(ggplot2)
    df <- data.frame(X = sample(letters[1:3], 100, replace = T), #like date
                     Y = sample(c('morn','day','night'), 100, replace = T),
                     Z = rbinom(100,1,prob = .6))
    df2 <- df %>% group_by(X, Y, Z) %>% summarise(Counts = n())
    
    ggplot(df2, aes(x = X, y= Y))+
      geom_label(aes(label = Counts, fill = factor(Z), hjust = Z)) + theme_bw()+
      scale_fill_manual(values = c('0' = 'red','1' = 'green'), name = 'Indicator')
    

    然后随便玩你想要的任何情节选项。

    【讨论】:

    • 只有一个问题。我做了这个,它正在工作,但颜色框值相差太远。在您的示例中,它们粘在一起。
    • @RicardoRacciore,您的hasconnection 变量是否在您的data.frame 中编码为factor?此外,如果不知道您的数据是什么样子,可能很难回答任何具体问题。
    • 再次...谢谢!我将它们作为常规字符串。只是将它们更改为因子。
    • @RicardoRacciore hjust 如果只编码为数字可能会更好:1 或 0...
    • 工作就像一个魅力!谢谢!我还尝试按升序对包含日期的 X 轴进行排序。我试过订购 df 但到目前为止没有运气。
    猜你喜欢
    • 2018-02-27
    • 2023-04-06
    • 1970-01-01
    • 2017-09-11
    • 2020-05-20
    • 2013-04-01
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多