你针锋相对因为直方图在x轴上的连续比例尺不同于条形图,因此它应该更改为“闪避条形图”而不是二维直方图,并且它们基本上用于比较单变量数据的分布或模拟依赖因子的单变量数据的分布。您正在尝试比较colB和colC,可以使用2D散点图而非条形图来有效显示colB和colC。使用直方图比较colB和colC分布的更好方法是分别绘制两个直方图并检查数据点位置的变化。
如果要比较colB和colC的分布,请尝试以下代码:我已经将值整理得出,以便根据数据描述获取合理的数据。注意随机抽样是通过排列发生的,每次您运行相同的代码,分布会有轻微的变化,但这不会影响colB和colC之间分布的推断。
library("ggplot2")
# 44 datapoints between 1-10
a <- rep(1:10, 4)
a <- c(a, sample(a, size=4, replace=FALSE))
# 25 datapoints between 11-20
b <- rep(11:20, 2)
b <- c(b, sample(b, size=5, replace=FALSE))
# 31 datapoints between 21-30
c <- rep(21:30, 3)
c <- c(c, sample(c, size=1, replace=FALSE))
colB <- c(a, b, c)
# 64 datapoints between 1-10
a <- rep(1:10, 6)
a <- c(a, sample(a, size=4, replace=FALSE))
# 36 datapoints between 11-20
b <- rep(11:20, 3)
b <- c(b, sample(b, size=6, replace=FALSE))
colC <- c(a, b)
df <- data.frame(cbind(colB, colC=colC))
write.table(df, file = "data")
data <- read.table("data", header=TRUE)
data
ggplot(data=data, aes(x=colB, xmin=1, xmax=30)) + stat_bin(binwidth = 1)
ggplot(data=data, aes(x=colC, xmin=1, xmax=30)) + stat_bin(binwidth = 1)
# if you want density distribution, then you can try something like this:
ggplot(data=data, aes(x=colB, y = ..density.., xmin=1, xmax=30)) + stat_bin(binwidth = 1)
ggplot(data=data, aes(x=colC, y = ..density.., xmin=1, xmax=30)) + stat_bin(binwidth = 1)
HTH -Sathish