Все частоты моего гистограммы одинаковой высоты? - PullRequest
0 голосов
/ 28 мая 2019

Попытка составить график CSV-файла, и на графике все категории отображаются одинаковой высоты, несмотря на частоты, варьирующиеся от 450 до 800

Ниже приводится график, который я получаю

! https://imgur.com/9HZuiaK

Я попытался реализовать высоту = х, ширину = х Это приводит к полному удалению меток и не устраняет первоначальную проблему.

setwd("~/Desktop")
causes<-read.csv('causes.csv')
head(causes)

table(causes$Intentional.self.harm..suicide)

barplot(table(causes$Intentional.self.harm..suicide))
barplot(table(causes$Intentional.self.harm..suicide), ylab='Frequency', 
        main='Barplot of Intentional self-harm (suicide)', col='lightblue'

dput(head(causes, 20))

Intentional.self.harm..suicide. = c(535L, 
579L, 480L, 541L, 499L, 537L, 466L, 453L, 459L, 494L, 520L, 553L, 
525L, 588L, 578L, 631L, 676L, 656L, 757L, 673L)

1 Ответ

0 голосов
/ 28 мая 2019

Я полагаю, что вы неправильно используете функцию table, так как вы уже рассчитали количество модальностей. Так что это не графическая и не функциональная проблема. Все, что вам нужно сделать, это рассчитать частоту следующим образом:

Intentional.self.harm..suicide. = c(535L, 
                                    579L, 480L, 541L, 499L, 537L, 466L, 453L, 459L, 494L, 520L, 553L, 
                                    525L, 588L, 578L, 631L, 676L, 656L, 757L, 673L)

df <- Intentional.self.harm..suicide.
barplot(height = df) # correct barplot with counts

df_prop <- table(df) # gives a table that count modalities (all unique ie 1)
str(df_prop)

# With a data.frame if you want to include labels
df_prop <- data.frame(
        "type" = paste0("t", 1:20),
        "freq" = df/sum(df) # alternatively use prop.table(df)
)

# sum(df_prop$freq) # to check
barplot(height = df_prop$freq) # same 'profile' than first barplot

# --- EDIT / Follow up
# looking at documentation of barplot to set labels and ordinate limits
?barplot

barplot(height = df_prop$freq, names.arg = df_prop$type, ylim=c(0, max(df_prop$freq * 1.2)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...