2017-10-22 115 views
0

user_a - 3 user_b - 4 user_c - 1 user_d - 4 我想使用直方圖顯示r中每個作者的推文數量分佈。原始文件有 我做hist(df$twitter_count, nrow(df)) 1048575個這樣行,但我不認爲它正確如何在r中爲2列數據創建直方圖?

+0

請將您的數據包含爲可編輯文本鏈接到圖像 –

+0

嗨Mehru - 歡迎來到SO ...它會幫助我,如果我更瞭解您的數據 - 請參閱https://stackoverflow.com/questions/5963269/how-to-make-一個偉大-R重現-例子。你的nrow(df)描述了直方圖中的中斷......如果你正在研究一些條件直方圖(例如,每個作者每天/每週/每月/每年的推文數),你可以考慮使用lattice或ggplot2。 –

+0

如果你想直方圖的Twitter計數,只需使用'hist(df $ twitter_count)' – Suren

回答

1

如果data.frame的每一行代表一個用戶 -

set.seed(1) 
df <- data.frame(user = letters, twitter_count = rpois(26, lambda = 4) + 1) 
hist(df$twitter_count) 

enter image description here

2

看來我誤解了這個問題。我想以下可能是 OP正在尋找什麼。

df <- data.frame(user = letters, 
       twitter_count = sample.int(200, 26)) 

ggplot(df, aes(user, twitter_count)) + 
    geom_col() 

enter image description here


假設你正在尋找多個直方圖。

用您的data.frame中的相應變量名替換user

# Example data 
df <- data.frame(user = iris$Species, 
       twitter_count= round(iris[, 1]*10)) 

# Histograms using ggplot2 package 
library(ggplot2) 
ggplot(df, aes(x = twitter_count)) + 
    geom_histogram() + facet_grid(.~user) 

如果您的數據包含許多Twitter用戶,最好使用另一種方法來查看Twitter計數的分佈。

0

既然你說,分佈於 '每個用戶',我認爲這應該是一個棒印跡:

require(data.table) 
dat <- fread(" 
    user_a - 3 
    user_b - 4 
    user_c - 1 
    user_d - 4" 
) 

barplot(names.arg = dat$V1, as.numeric(dat$V3)) 

barplot

,或者如果你正在尋找直方圖,然後:

hist(as.numeric(dat$V3), xlab = "", main="Histogram") 

histogram