如何在 R 中绘制 X 轴和 Y 轴的基本直方图
How to draw a basic histogram with X and Y axis in R
我想制作一个包含两个向量的简单直方图,
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
函数,但我无法提供两个变量。如何根据这些数据制作简单的直方图?
使用 ggplot2:
library(ggplot2)
ggplot(df, aes(x = values, y = freq)) +
geom_bar(stat="identity")
既然你已经有了频率,你真正想要的是条形图:
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))]
我想制作一个包含两个向量的简单直方图,
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
函数,但我无法提供两个变量。如何根据这些数据制作简单的直方图?
使用 ggplot2:
library(ggplot2)
ggplot(df, aes(x = values, y = freq)) +
geom_bar(stat="identity")
既然你已经有了频率,你真正想要的是条形图:
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))]