R-对从数据帧生成的条形图/直方图进行排序

R-对从数据帧生成的条形图/直方图进行排序,r,plot,histogram,r-factor,R,Plot,Histogram,R Factor,如何更改从数据帧生成的条形图的条形顺序 我在这里尝试了以下代码: 但它似乎只适用于箱线图,例如 foo=data.frame(a=c(1,2,3),b=c("a","b","c")) barplot(height=foo$a,names.arg=foo$b) boxplot(foo$a~foo$b) foo$c=factor(foo$b,c("c","b","a")) barplot(height=foo$a,names.arg=foo$c) boxplot(foo$a~foo$c) 这对我有

如何更改从数据帧生成的条形图的条形顺序

我在这里尝试了以下代码: 但它似乎只适用于箱线图,例如

foo=data.frame(a=c(1,2,3),b=c("a","b","c"))
barplot(height=foo$a,names.arg=foo$b)
boxplot(foo$a~foo$b)
foo$c=factor(foo$b,c("c","b","a"))
barplot(height=foo$a,names.arg=foo$c)
boxplot(foo$a~foo$c)
这对我有用

foo$c=factor(foo$b, levels = c("c","b","a"))
foo <- foo[order(foo$c), ]
barplot(height=foo$a,names.arg=foo$c)
foo$c=系数(foo$b,级别=c(“c”、“b”、“a”))

foo这并不是说它只适用于箱线图,而是这两个函数使用不同的标准来确定x轴的顺序。箱线图与大多数函数一样,以因子“c”作为x轴。执行此操作时,值将根据因子级别的顺序打印出来。请注意,您只是将高度向量传递给
条形图
,因此这些高度以您传递它们的任何顺序打印
names.arg
只处理它们的命名方式,而不是它们的绘制顺序。
高度中没有任何内容
参数知道因子“c”。嗯。。。既然你提到了,这似乎很明显。
barplot
难道不能识别数据帧和类似结构吗?唉,它不能。它没有像大多数其他绘图函数那样的公式界面。很高兴知道。。。谢谢你的帮助!这个答案或许可以。我仍然很好奇,是否有一种方法可以在不编辑数据帧(或生成新数据帧)的情况下实现这一点,因此我将把这个问题留待讨论。好的,再仔细考虑一下,我意识到,可能没有比你的建议或对每个输入向量使用下标索引方法更好的方法了。谢谢你的帮助!