我很难理解如何将以下数据输入直方图:
NSP <- c(1380, 6003, 1827, 661, 331, 156, 97, 73, 58)
hist(NSP)
每个数字应以完全相同的顺序表示一个条形。我试图使用ggplot但未能获得Y轴上的频率。
非常感谢提前!
答案 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))
如果您有休息的其他标签,您可以指定它们,例如:
ggplot(
mapping = aes(y = NSP
, x = seq_along(NSP))) +
geom_col() +
scale_x_continuous(breaks = seq_along(NSP)
, labels = LETTERS[seq_along(NSP)])
但请注意,当您的数据位于data.frame中时,ggplot
通常可以更顺畅地运行。这可能是一种更灵活的方法,并允许更简洁的列位置命名(例如,如果它们不是均匀间隔,您可以有一列用于实际位置,一列用于标签)。
NSP_df <- data.frame(Location = LETTERS[seq_along(NSP)]
, Count = NSP)
ggplot(
NSP_df
, aes(y = Count
, x = Location)) +
geom_col()
答案 1 :(得分:1)
也许你想要的是barplot(NSP)
?