我正在尝试在r中绘制分组条形图
这是我的代码:
xtable <- xtabs(~ view + grade, data=hs)
xtable
barplot(xtable, beside = T, legend.text = T)
library(reshape2)
data.m <- melt(xtable, id.vars='view')
data.m
# plot
ggplot(data.m, aes(grade, value)) + geom_bar(aes(fill = view),
width = 0.4, position = "dodge", stat="identity") +
theme(legend.position="top", legend.title =
element_blank(),axis.title.x=element_blank(),
axis.title.y=element_blank())
视图和等级是所售房屋的两个属性。等级是介于0到13之间的值,表示房屋的等级,而视图是介于0到4之间的值,表示房屋的外观有多好。
r中通常的barplot命令工作于Oaky。但是,我喜欢它的ggplot。 我遵循了类似问题的答案,但是我得到了一个堆叠的条,而不是一个分组的条。另外,如何使用相同的数据生成分段的条形图和脊柱图?
答案 0 :(得分:1)
您的代码认为view
是连续的,而不是连续的。将其转换为factor
。
library(ggplot2)
library(reshape2)
hs <- read.csv(file = file.choose())
xtable <- xtabs(formula = (~ view + grade),
data = hs)
data.m <- melt(data = xtable,
id.vars='view')
ggplot(data = data.m,
mapping = aes(x = grade,
y = value)) +
geom_bar(mapping = aes(fill = factor(x = view)),
position = "dodge",
stat="identity")
这将生成以下内容,您可以稍后对其进行修改以使其看起来更好。