gpt4 book ai didi

r - 使用ggplot2和R创建帕累托图

转载 作者:行者123 更新时间:2023-12-03 12:03:07 25 4
gpt4 key购买 nike

我一直在努力使用ggplot2软件包在R中制作Pareto Chart。在许多情况下,制作条形图或直方图时,我们希望项目按X轴排序。在帕累托图表中,我们希望项目按Y轴上的值降序排列。有没有办法让ggplot绘制由Y轴上的值排序的项目?我尝试首先对数据帧进行排序,但ggplot似乎对其进行了重新排序。

例:

val <- read.csv("http://www.cerebralmastication.com/wp-content/uploads/2009/11/val.txt")
val<-with(val, val[order(-Value), ])
p <- ggplot(val)
p + geom_bar(aes(State, Value, fill=variable), stat = "identity", position="dodge") + scale_fill_brewer(palette = "Set1")

数据帧val已排序,但输出如下所示:

alt text
(来源: cerebralmastication.com)

Hadley正确地指出,这将产生一个更好的图形来显示实际值与预测值:
ggplot(val, aes(State, Value)) + geom_bar(stat = "identity", subset = .(variable == "estimate"), fill = "grey70") + geom_crossbar(aes(ymin = Value, ymax = Value), subset = .(variable == "actual"))

返回:

alt text
(来源: cerebralmastication.com)

但这仍然不是帕累托图。有小费吗?

最佳答案

ggplot2中的条按因子中的水平顺序进行排序。

val$State <- with(val, factor(val$State, levels=val[order(-Value), ]$State))

关于r - 使用ggplot2和R创建帕累托图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1735540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com