2011-04-21 41 views
2

是否可以通过stat_summary使用计算的y重新排序x值? 我认为这应该工作:ggplot2 - 可能通过计算y(stat_summary)的值重新排序x的值?

stat_summary(aes(x = reorder(XVarName , ..y..))) 

,但我得到了以下错误: “错误:stat_summary需要以下缺失的美学:X”

+1

没有,因为那样的话'stat_summary'不获得一个x值作为输入。 – hadley 2011-04-21 03:15:27

+3

一般来说,当它变得像这样复杂时,我已经有了更好的(读取:更高效的)运气来将我的数据转换到'ggplot'本身之外。 – Chase 2011-04-21 03:38:36

+0

@hadley - 你能解释一下吗?我设置了x =,那为什么不是输入? – SFun28 2011-04-21 12:57:12

回答

5

我已经看到了你的帖子,我认为这可能对你有所帮助。当生成一个绘图时,总是将它保存到一个唯一的变量中

创建您的绘图时不考虑排序,直到您感觉舒适只是创建绘图。然后,按照ggplot对象的结构工作,以更好地理解其中的内容。然后,找出你应该分类的东西。

plot1 <- ggplot() + ... 

您可以通过键入指出,已将其保存到对象名称推地块视口:

plot1 

创建ggplot对象(或变量)可以让你有机会审查情节的结构。顺便说一句,这可以回答你迄今为止所遇到的一些问题。

str(plot1) 

它仍然是相当简单的重新排序情节您保存后,作为一个变量/对象,尽管有稍长的名字:

plot$data$variable_tobe_recoded <- factor(...) 
+0

伟大的建议!我没有想过用str(plot),我打电话给summary(plot),但是这并没有给我太多的信息。 – SFun28 2011-04-21 16:17:12

+1

当我第一次开始使用ggplot时,我有类似的问题“搞清楚”。我没有在这里添加的东西,我应该有的是,你应该总结你的数据,然后再将其输入到ggplot中。哈德利创造了另外两个包,即重塑和plyr,使这些简单(甚至复杂)的操作变得容易。如果你不熟悉这两个软件包 - 这应该是未来的目标。熔化(),铸造(),重塑(),ddply() – 2011-04-21 18:46:53

+0

赞赏的建议!将研究这些功能。 – SFun28 2011-04-22 04:06:46