我有一个包含2列的CSV,第一列显示帐户的推文数量,第二列显示帐户名称。
1 billy
8 johno
3 bobby
1 Rob
我正在尝试绘制推文数量的频率。所以1条推文的频率为2。
这是我目前的代码。
UniqFreq <-read.csv("Uniq.csv", header = FALSE)
hist(x=UniqFreq[,1], freq = TRUE)
问题是目前我的直方图看起来像垃圾。它x轴像250长,这是不成比例的。
使用第一列数据绘制直方图上数字频率的任何帮助或建议都会非常有用。
答案 0 :(得分:3)
<强> INPUT 强>
df <- data.frame(value = c(1,2,4,1), name = c("bob","john","bob","james"))
df
# value name
# 1 1 bob
# 2 2 john
# 3 4 bob
# 4 1 james
<强>予。推文计数频率
df
# value name
# 1 1 bob
# 2 2 john
# 3 4 bob
# 4 1 james
vec <- table(df$value)
vec
# 1 2 4
# 2 1 1
xx <- barplot(table(df$value), xlab = "Tweet Count", ylab = "Frequency of Tweet Counts", main = "Frequency of Tweets posted \nBased on Tweet Count", cex.main = 1, ylim = c(0,10))
text(x = xx, y = vec, label = vec, pos = 3, cex = 1, col = "blue")
<强> II。每人推文数
df
# value name
# 1 1 bob
# 2 2 john
# 3 4 bob
# 4 1 james
vec <- tapply(df$value, df$name, sum)
vec
# bob james john
# 5 1 2
xx <- barplot(vec, ylim = c(0,10), main = "Count of tweets per person")
text(x = xx, y = vec, label = vec, pos = 3, cex = 1, col = "blue")
答案 1 :(得分:0)
您的数据
df <- read.table(text="1 billy
8 johno
3 bobby
1 Rob", header=FALSE)
使用ggplot
和dplyr
library(dplyr)
library(ggplot2)
df %>%
count(V1) %>%
ggplot(data=., aes(x=factor(V1), y=n)) +
geom_col() +
xlab("Tweet Count") +
ylab("Frequency") +
ggtitle("Frequency of Tweet Counts") +
theme(plot.title = element_text(hjust = 0.5)) +
theme_classic()