如何在 R 的条形图中对 X 轴进行排序?
Posted
技术标签:
【中文标题】如何在 R 的条形图中对 X 轴进行排序?【英文标题】:How can I sort the X axis in a Barplot in R? 【发布时间】:2010-10-08 07:14:46 【问题描述】:我已经合并了如下所示的数据:
(8.048,18.05] (-21.95,-11.95] (-31.95,-21.95] (18.05,28.05] (-41.95,-31.95]
81 76 18 18 12
(-132,-122] (-122,-112] (-112,-102] (-162,-152] (-102,-91.95]
6 6 6 5 5
(-91.95,-81.95] (-192,-182] (28.05,38.05] (38.05,48.05] (58.05,68.05]
5 4 4 4 4
(78.05,88.05] (98.05,108] (-562,-552] (-512,-502] (-482,-472]
4 4 3 3 3
(-452,-442] (-412,-402] (-282,-272] (-152,-142] (48.05,58.05]
3 3 3 3 3
(68.05,78.05] (118,128] (128,138] (-582,-572] (-552,-542]
3 3 3 2 2
(-532,-522] (-422,-412] (-392,-382] (-362,-352] (-262,-252]
2 2 2 2 2
(-252,-242] (-142,-132] (-81.95,-71.95] (148,158] (-1402,-1392]
2 2 2 2 1
(-1372,-1362] (-1342,-1332] (-942,-932] (-862,-852] (-822,-812]
1 1 1 1 1
(-712,-702] (-682,-672] (-672,-662] (-632,-622] (-542,-532]
1 1 1 1 1
(-502,-492] (-492,-482] (-472,-462] (-462,-452] (-442,-432]
1 1 1 1 1
(-432,-422] (-352,-342] (-332,-322] (-312,-302] (-302,-292]
1 1 1 1 1
(-202,-192] (-182,-172] (-172,-162] (-51.95,-41.95] (88.05,98.05]
1 1 1 1 1
(108,118] (158,168] (168,178] (178,188] (298,308]
1 1 1 1 1
(318,328] (328,338] (338,348] (368,378] (458,468]
1 1 1 1 1
如何绘制这些数据,以便将 bin 从左侧的最负值排序到右侧的最正值?目前我的图表看起来like this。请注意,它根本没有排序。特别是第二个栏 (value = 76
) 放置在第一个栏的右侧:
(8.048,18.05] (-21.95,-11.95]
81 76
这是我用来绘图的命令:
barplot(x,ylab="Number of Unique Tags", xlab="Expected - Observed")
【问题讨论】:
“Hi”和两个换行符,这取决于数据库中的存储可能等于更多字符。至少两个。 顺便说一句,谁让 Rich B 成为“可接受行为”的决定者。 是的,字符数基于 html,而不是 Markdown。今天早些时候,我编辑了一篇文章,只是为了在一些代码周围添加反引号,默认的编辑摘要是“在正文中添加了 13 个字符”。 `` 不是 13 个字符,但
是。
我们应该修改 Jeff 的博客文章说:“尊重原作者,或者尊重认为他知道原作者想要什么的编辑;或者尊重不喜欢你的更改和原作者随后批准您的更改。”
我也有同样的问题。有谁知道如何订购垃圾箱?根据 FryGuy 的评论,bin 是一种数学符号,可以在 R 中使用“cut”或“cut2”轻松创建。像 neversaint 一样,我试图在我的 x 轴上订购这些。当 bin 都是正数时,排序正确。但如果一个箱子有一个负数,那就不行了! – WGray 6 分钟前
【参考方案1】:
我真的很想帮助回答你的问题,但我得告诉你,我无法对你的数据做出正面或反面。我看到很多左括号,但没有右括号。数据看起来按每行底部的值降序排序。我不知道如何利用像 "(8.048,18.05]" 之类的值
我是否遗漏了一些明显的东西?你能举一个更简单的例子,说明你的数据结构不是一个因素吗?
我通常希望数据框或矩阵具有两列,一列用于 X,一列用于 Y。
看看这个排序示例是否有帮助(我在这里有点摸不着头脑)
tN <- table(Ni <- rpois(100, lambda=5))
r <- barplot(tN)
#stop here and examine the plot
#the next bit converts the matrix to a data frame,
# sorts it, and plots it again
df<-data.frame(tN)
df2<-df[order(df$Freq),]
barplot(df2$Freq)
【讨论】:
他用的是一般数学范围记法,[]是闭区间,()是开区间。因此,对于他的第一个 bin:(8.048,18.05] = 81,这意味着对于范围 8.048 噢噢噢!谢谢你把它理顺。我没有看到 R 的输出看起来像那样,所以我很困惑。以上是关于如何在 R 的条形图中对 X 轴进行排序?的主要内容,如果未能解决你的问题,请参考以下文章
根据ggplot2中最后一个分面网格的递减值对条形图的Y轴进行排序