非常简单 - R

时间:2016-12-26 19:38:45

标签: r ggplot2 histogram

我很难理解如何将以下数据输入直方图:

NSP <- c(1380, 6003, 1827, 661, 331, 156, 97, 73, 58) 
hist(NSP)

每个数字应以完全相同的顺序表示一个条形。我试图使用ggplot但未能获得Y轴上的频率。

非常感谢提前!

2 个答案:

答案 0 :(得分:2)

如果您尝试使用ggplot2,那么您可能需要geom_col。请注意,您需要为条形指定x位置。在这里,我只是使用1:length(NSP)指定seq_along

ggplot(
  mapping = aes(y = NSP
                , x = seq_along(NSP))) +
  geom_col() +
  scale_x_continuous(breaks = seq_along(NSP))

enter image description here

如果您有休息的其他标签,您可以指定它们,例如:

ggplot(
  mapping = aes(y = NSP
                , x = seq_along(NSP))) +
  geom_col() +
  scale_x_continuous(breaks = seq_along(NSP)
                     , labels = LETTERS[seq_along(NSP)])

enter image description here

但请注意,当您的数据位于data.frame中时,ggplot通常可以更顺畅地运行。这可能是一种更灵活的方法,并允许更简洁的列位置命名(例如,如果它们不是均匀间隔,您可以有一列用于实际位置,一列用于标签)。

NSP_df <- data.frame(Location = LETTERS[seq_along(NSP)]
                     , Count = NSP)

ggplot(
  NSP_df
  , aes(y = Count
        , x = Location)) +
  geom_col()

enter image description here

答案 1 :(得分:1)

也许你想要的是barplot(NSP)

R plot output