我想制作一个简单的直方图,其中包含两个向量,
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
函数,但我无法给出两个变量。如何从这些数据中制作简单的直方图?
答案 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))]