我想製作一個圖表,其中x軸是日期(每個刻度是1天),並且y軸的每個刻度代表一個唯一標識的個體(一個魚)。然後,對於每個人每天,我會繪製一個點來顯示每個人是否在某一天被發現。用一個數字序列替換唯一ID
我的問題是,我有很多檢測到陰謀,約400人。唯一標識號碼的個體非常大(例如:161795550和165705763是400個唯一ID中的兩個)。有些人只看到幾天,一些人幾百人。
問題:以這種方式繪製(使用ggplot2)使得y軸不可能分散在低和高唯一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)
歡迎任何其他解決方案!
這對我來說沒有多大意義。你的ID是一個字符,而不是一個數字,因此ggplot會把它們當作因子,因此是一個分類比例,而不是數字。據我所知,應該沒有問題。 – Andrie
它是數字,是一個整數。我將它保存爲一個角色,並且ggplot2完美地處理了它! – user1399311
而不是將其轉換爲字符,您可以將'scale_y_discrete()'添加到您的圖 –