2017-10-21 100 views
0

我有一個包含2列的CSV,第一列顯示了一個帳戶的推文數量,第二列顯示了帳戶名稱。僅使用1列值繪製R中的直方圖

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長,這是不成比例的。

有關使用第一列數據繪製直方圖上數字的頻率的任何幫助或建議將非常有幫助。

回答

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 

I.分享Tweet計數頻率

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") 

enter image description here


二,鳴叫每人計數

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") 

enter image description here


+0

也許我的措辭我的問題很差。我希望x軸有1到n個推文的數量。因此,由於2人分別發佈了1條推文,因此1的x軸值的頻率爲2. – Liam

+1

瞭解。將udpate –

+0

更新它。請檢查。兩種都在那裏。 –

0

你的數據

df <- read.table(text="1 billy 
8 johno 
3 bobby 
1 Rob", header=FALSE) 

解決方案使用ggplotdplyr

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()