如何在R中绘制具有X和Y轴的基本直方图

时间:2015-07-26 17:39:05

标签: r dataframe histogram

我想制作一个简单的直方图,其中包含两个向量,

values <- c(1,2,3,4,5,6,7,8)
freq <- c(4,6,4,4,3,2,1,1)
df <- data.frame(values,freq)

现在data.farame df包含以下值:

values freq
 1    4
 2    6
 3    4
 4    4
 5    3
 6    2
 7    1
 8    1

现在我想绘制一个简单的直方图,其中value位于x轴上,freq位于y轴上。我正在尝试使用hist函数,但我无法给出两个变量。如何从这些数据中制作简单的直方图?

2 个答案:

答案 0 :(得分:3)

使用ggplot2:

library(ggplot2)
ggplot(df, aes(x = values, y = freq)) +
       geom_bar(stat="identity")

答案 1 :(得分:1)

由于你已经拥有频率,你真正想要的是条形图:

barplot(df$freq,names.arg=df$values)

如果你已经开始使用hist,那么你应该这样做:

hist(rep(df$values,df$freq))

请阅读?barplot?hist了解更多绘图选项。

另外,因为我有点狂热,所以如果你使用data.table,我认为代码看起来更干净:

library(data.table)
setDT(df) #convert df to a data.table by reference
df[,barplot(freq,names.arg=values)]

df[,hist(rep(values,freq))]