[問題] 關於使用text,label 最大值

作者: SleepyChink (SleepyChink)   2016-08-12 20:22:12
[Code]
library(MASS)
attach(Animals)
min(Animals$body)
max(Animals$body)
min(Animals$brain)
max(Animals$brain)
par(mfrow=c(1,2))
plot(brain~body, xlab="body", ylab="brain", xlim=c(0,88000), ylim=c(0,5800), main="body vs. brain", mex=0.8)
text(x=Animals$body, y=Animals$brain, labels=row.names(Animals), pos=4)
[問題]
上述語法能在我畫完的圖中標示出資料(Animals)的名稱,
但是如果我只想要標示出body中,
最大的三個值可以如何更改,
我目前有想到先用order(Animals$body)搭配sort(Animals$brain)找出最大的三個值,
但不曉得如何只標出這三個的名稱與值,
謝謝大家。
作者: andrew43 (討厭有好心推文後刪文者)   2016-08-12 20:31:00
例如 sort(Animals$brain, F)[1:3] 這樣可以得到前三大
作者: SleepyChink (SleepyChink)   2016-08-12 21:14:00
謝謝,這樣可以得到前三大值,但仍然無法將它標註在圖上,(語法如下)text(x=Animals$body, y=Animals$brain, labels=row.names(sort(Animals$body, T)[1:3]), pos=4)
作者: andrew43 (討厭有好心推文後刪文者)   2016-08-12 21:38:00
建議你這樣想:把要標示的額外提取出來成新的物件,因為text()中各項參數是要互相配合的。你目前text()中有的是全部,有的是子集,混在一起不行的
作者: SleepyChink (SleepyChink)   2016-08-12 23:43:00
已經成功,謝謝建議

Links booklink

Contact Us: admin [ a t ] ucptt.com