【问题标题】:Plot histogram for discrete data绘制离散数据的直方图
【发布时间】:2017-12-08 07:50:18
【问题描述】:

我在为以下数据使用 R 绘制直方图时遇到了很多困难:

ip_addr_player_id,event_name,level,time_to_finish,

118.93.180.241, Puzzle Complete, Puzzle 1,33.28 seconds

这是单行数据。我需要绘制数字玩家与所玩关卡数量的直方图。我能够成功绘制散点图、点、线等,但没有直方图。

on Xaxis: number of levels. 
Yaxis: Number of player. 

每个IP地址都是唯一的,单个IP地址可以玩多个级别。我附上了一张示例图片。

【问题讨论】:

  • 直方图用于连续数据。你想要一个条形图。

标签: r ggplot2 visualization


【解决方案1】:

我认为您正在寻找的实际上是条形图,而不是直方图。 geom_bar 就是用来做这个的。例如:

library(ggplot2)
ggplot(diamonds, aes(cut)) + geom_bar()

【讨论】:

    【解决方案2】:
    library(ggplot2)
    df <- data.frame(ip_addr_player_id='118.93.180.241', 
                     event_name='Puzzle Complete', 
                     level='Puzzle 1',
                     time_to_finish='33.28 seconds')
    df$num_levels <- strsplit(var,split =' ')[[1]][-1]
    ggplot(df) +geom_bar(aes(num_levels)) +labs(x="Num Levels",y="Num Players") 
    

    【讨论】:

      【解决方案3】:

      table() 应该可以完成这项工作:

      创建数据:

      ips <- sample(seq(100,999), 100, replace = TRUE) 
      levels <- sample(LETTERS, 100, replace = TRUE)
      data <- data.frame(ips, levels)
      

      现在开始计算:

      unique.levels <- sort(unique(data$levels))
      count <- table(data$levels)
      count.df <- data.frame(unique.levels, count)
      

      现在剧情:

      plot <- ggplot(count.df, aes(unique.levels, Freq, fill=unique.levels))
      
      plot + geom_bar(stat="identity") + 
              labs(title="Level Count",
                   subtitle="count for every lvl played",
                           y="Count", x="Levels") + 
              theme(legend.position="none")
      

      我知道,如果您在 aes() 中使用 data$levels,那么仅 geom_bar() 就会为您计算级别,但 count.df 包含该信息,因此您可以在其他地方使用它。

      【讨论】:

      • 谢谢!为您的建议。但这完全不是我需要的。正如您在我的问题陈述中的示例图片中看到的那样,我希望它不是每个玩家所玩的关卡与玩家数量。例如:p1:l1,l2,l2(pl 玩家 3 级游戏) p2:l3,l1(p2 玩 2 级游戏) p3:l1(p3 玩 1 级游戏)所以所需的直方图将如下所示:x轴:(级别数)1 2 3 4 5 ..... y 轴:(玩家人数)1 1 1 类似的东西
      • 嘿!谢谢,我可以解决我的问题。我得到了想要的结果。
      猜你喜欢
      • 2021-09-01
      • 2012-06-27
      • 2018-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-15
      • 1970-01-01
      相关资源
      最近更新 更多