0

我正在尝试制作一个图表,其中 x 轴是日期(每个刻度是 1 天),y 轴的每个刻度代表一个唯一标识的个体(一条鱼)。然后,对于每天的每个人,我将绘制一个点来显示每个人是否在某一天被检测到。

我的问题是我有数千个检测要绘制,大约有 400 个人。个人唯一标识号非常大(例如:161795550 和 165705763 是 400 个唯一 ID 中的两个)。有些人只见几天,有些人几百。

问题:以这种方式绘制它(使用 ggplot2)使得 y 轴不可能在低唯一 ID 和高唯一 ID 之间展开,并且使用 ggplot2 没有办法打破轴。因此,我对解决方案的想法是将唯一 ID 重新编号为从 1 到 400 的序列,作为控制 y 轴上分布的一种方式。我可以手动执行此操作,但需要很长时间。有什么好方法可以自动重命名吗?

这是一些可用于重新创建应用情况的代码,我想将三个唯一 ID (165705763,161795422,161795351) 重命名为 (1,2,3)(现实生活中会有 400 个 ID问题)。

a<-c("165705763","165705763","165705763","165705763","165705763","161795422","161795351","161795351","161795351")
b<-c("Seine","Seine","Seine","Seine","Seine","Seine","HookAndLine","HookAndLine","HookAndLine")
f<-c("2010-10-25","2010-10-18 ","2010-10-30","2010-11-12","2010-10-29","2010-10-16","2010-10-25","2010-10-16","2010-10-18")
d<-cbind(a,b,f)

欢迎任何其他解决方案!

4

1 回答 1

1

安德烈的评论导致了一个非常简单的解决方案。原始数据的 ID 为“整数”类。我只是将 ID 重新分类为字符,而 ggplot2 自动缩放 y 轴

于 2012-06-04T19:50:12.077 回答