使用 ggplot2 将 R 中的值居中
Centering values in R with ggplot2
我正在尝试将此答案应用到我的数据集,但是 - 作为初学者,它根本不适合我。
这里是示例集和示例代码:
d <- data.frame(Variant = sample(c("iedere","elke"),size = 50,replace = TRUE),
Region = sample(c("VL","NL"),size = 50,replace = TRUE),
PrecededByPrep = sample(c("1","0"),size = 50,replace = TRUE),
Person = sample(c("person","no person"),size = 50,replace = TRUE),
Time = sample(c("time","no time"),size = 50,replace = TRUE))
qplot(factor(Variant), data=d, geom="bar", fill=Variant) +
theme_bw() +
xlab("") +
ylab("Frequencies") +
geom_text(aes(label = factor(Variant), y = 5), size = 3)
这是一个简单的条形图,只有两个元素(因此条形图应显示 "iedere" 和 "elke" 的频率)。我尝试添加 geom_text
一个我认为至少会显示出现次数的值,但这不起作用。相反,它显示的是标签,而不是值。
我还想将其应用于堆积图 和 分组堆积图 - 如图 所示。我假设所有三个图表的方法都相同,但看到我什至无法让第一个图表使用提供的代码,我没有尝试其他两个图表。非常感谢一些指导和帮助。
您需要为标签创建辅助数据框。我还重组了绘图代码,因为你最终想用它做更多的事情,qplot
实际上只适用于 "quick" 绘图或那些来自需要快速映射的基础绘图的绘图:
d_labs <- data.frame(table(d$Variant))
gg <- ggplot(d, aes(x=Variant))
gg <- gg + geom_bar(aes(fill=Variant))
gg <- gg + geom_text(data=d_labs, aes(x=Var1, label=Freq), y=5, size=3)
gg <- gg + theme_bw()
gg <- gg + labs(x=NULL, y="Frequencies")
gg
通过这种方式,您可以方式更好地控制 geom_text
geom。
编辑
您可以将垂直位置映射到 Freq
审美:
gg <- gg + geom_text(data=d_labs, aes(x=Var1, label=Freq, y=Freq/2), size=3)
我正在尝试将此答案应用到我的数据集,但是 - 作为初学者,它根本不适合我。
这里是示例集和示例代码:
d <- data.frame(Variant = sample(c("iedere","elke"),size = 50,replace = TRUE),
Region = sample(c("VL","NL"),size = 50,replace = TRUE),
PrecededByPrep = sample(c("1","0"),size = 50,replace = TRUE),
Person = sample(c("person","no person"),size = 50,replace = TRUE),
Time = sample(c("time","no time"),size = 50,replace = TRUE))
qplot(factor(Variant), data=d, geom="bar", fill=Variant) +
theme_bw() +
xlab("") +
ylab("Frequencies") +
geom_text(aes(label = factor(Variant), y = 5), size = 3)
这是一个简单的条形图,只有两个元素(因此条形图应显示 "iedere" 和 "elke" 的频率)。我尝试添加 geom_text
一个我认为至少会显示出现次数的值,但这不起作用。相反,它显示的是标签,而不是值。
我还想将其应用于堆积图 和 分组堆积图 - 如图
您需要为标签创建辅助数据框。我还重组了绘图代码,因为你最终想用它做更多的事情,qplot
实际上只适用于 "quick" 绘图或那些来自需要快速映射的基础绘图的绘图:
d_labs <- data.frame(table(d$Variant))
gg <- ggplot(d, aes(x=Variant))
gg <- gg + geom_bar(aes(fill=Variant))
gg <- gg + geom_text(data=d_labs, aes(x=Var1, label=Freq), y=5, size=3)
gg <- gg + theme_bw()
gg <- gg + labs(x=NULL, y="Frequencies")
gg
通过这种方式,您可以方式更好地控制 geom_text
geom。
编辑
您可以将垂直位置映射到 Freq
审美:
gg <- gg + geom_text(data=d_labs, aes(x=Var1, label=Freq, y=Freq/2), size=3)