我正在努力用以下数据用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地址可以播放多个级别。我附上了一张样本图片。
答案 0 :(得分:5)
答案 1 :(得分:1)
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()中使用数据$ levels,geom_bar()会为你计算级别,但是count.df会携带那些信息,所以你可以在其他地方使用它。
答案 2 :(得分:0)
希望这有帮助
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")