我有一个这样的示例数据框:
Measurement <- c("Length","Breadth","Length","Breadth","Height",
"Height","Breadth","Length","Height","Breadth",
"Length","Height","Height","Breadth","Length")
Value <- c(45,43,45,100,62,62,43,74,74,74,12,17,17,44,12)
data <- data.frame(Measurement, Value)
我正在尝试将这些数据可视化以查看每次测量的值是如何分配的,以及我们是否将测量值组合在一起。我使用直方图的基本图来做到这一点,但这不具有视觉吸引力
hist(data$Value)
有些人可以帮我使用ggplot2或其他高级可视化来更好地查看这些数据,我想按测量分组。我想看看密度图是否在这里意味着什么。任何帮助,将不胜感激。
答案 0 :(得分:3)
以下是一些有趣的选择:
library(ggplot2)
ggplot(data, aes(factor(Measurement), Value)) + geom_violin(aes(fill = factor(Measurement)))
ggplot(data, aes(Value, colour = Measurement, group = Measurement)) + geom_density(fill=NA)
他们产生以下内容:
希望这有帮助!
答案 1 :(得分:1)
这是使用geom_histogram
的另一种可能性。要获得最佳,最具信息性的直方图,必须为每个新数据集手动设置binwidth
。
library(ggplot2)
p = ggplot(data=data, aes(x=Value, fill=Measurement)) +
geom_histogram(binwidth=1, colour="grey40", drop=TRUE) +
facet_grid(Measurement ~ ., margins=TRUE) +
theme_bw()
ggsave("hist.png", plot=p, width=8, height=4, dpi=150)
答案 2 :(得分:0)
不确定我是否理解这些问题。你想分开价值观吗? 为此,你可以这样做:
ValueLength <- data.frame(Value = Value[which(Measurement == "Length")], Measurement = "Lenghth")
ValueBreadth <- data.frame(Value = Value[which(Measurement == "Breadth")], Measurement = "Breadth")
ValueHeight <- data.frame(Value = Value[which(Measurement == "Height")], Measurement = "Height")
然后,您可以再次将它们组合在一个数据框中:
Values <- rbind(ValueLength, ValueBreadth, ValueHeight)
用ggplot绘图:
ggplot(Values, aes(Value, fill = Measurement)) + geom_density(alpha = 0.2)