按值对geom_bar ggplot2中的条重新排序
我试图制作一个条形图,其中图的顺序是从按值对geom_bar ggplot2中的条重新排序,r,ggplot2,R,Ggplot2,我试图制作一个条形图,其中图的顺序是从miRNA值最高的到miRNA值最低的。为什么我的代码不起作用 > head(corr.m) miRNA variable value 1 mmu-miR-532-3p pos 7 2 mmu-miR-1983 pos 75 3 mmu-miR-301a-3p pos 70 4 mmu-miR-96-5p pos 5 5
miRNA
值最高的到miRNA
值最低的。为什么我的代码不起作用
> head(corr.m)
miRNA variable value
1 mmu-miR-532-3p pos 7
2 mmu-miR-1983 pos 75
3 mmu-miR-301a-3p pos 70
4 mmu-miR-96-5p pos 5
5 mmu-miR-139-5p pos 10
6 mmu-miR-5097 pos 47
ggplot(corr.m, aes(x=reorder(miRNA, value), y=value, fill=variable)) +
geom_bar(stat="identity")
您的代码运行良好,只是条形图的顺序是从低到高。当您想从高到低排列条形图时,必须在值之前添加-
符号:
ggplot(corr.m, aes(x = reorder(miRNA, -value), y = value, fill = variable)) +
geom_bar(stat = "identity")
其中:
已用数据:
corr.m <- structure(list(miRNA = structure(c(5L, 2L, 3L, 6L, 1L, 4L), .Label = c("mmu-miR-139-5p", "mmu-miR-1983", "mmu-miR-301a-3p", "mmu-miR-5097", "mmu-miR-532-3p", "mmu-miR-96-5p"), class = "factor"),
variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L), .Label = "pos", class = "factor"),
value = c(7L, 75L, 70L, 5L, 10L, 47L)),
class = "data.frame", row.names = c("1", "2", "3", "4", "5", "6"))
corr.m在某些情况下,它在我的绘图中没有排序reason@user3741035奇怪。您是在上面提供的样本数据集上使用它,还是在整个数据集上使用它?您使用的是哪个版本的R&ggplot?您还可以获得一个更大的样本数据集(对于变量
,最好有多个值)?找到了解决方案:我加载了一个库(gplots),这把事情搞砸了things@maycca它给出了正确的结果(在OSX 10.10.4/Windows 7、R 3.2.3和ggplot2 2.1.0上)。也许你应该从新的课程开始?