web-dev-qa-db-ja.com

プロットの線にラベルを付ける

私はを使用して2本の線をプロットしています

plot(x, y, type = "l", color = "red")

そして

points(x2, y2, type = "l", color = "blue")

(凡例ではなく)各行の横にラベルを追加できるようにしたい。 http://directlabels.r-forge.r-project.org/ のパッケージを使用して可能であると確信しています。

それでも、それを行う簡単な方法は見つかりません。

12
Ruser

ポイント&クリックメソッドにより、locator()内でtext()を使用できます。

y <- rnorm(100, 10)
y2 <- rnorm(100, 20)
x <- 1:100

plot(x, y, type = "n", ylim = c(0, 40), xlim = c(0, 120))
lines(x, y)
lines(x, y2, col = "red")
text(locator(), labels = c("red line", "black line)"))

alt text

17
Roman Luštrik

Locator()を使用する代わりに、ラベル座標をデータの関数にすることもできます。たとえば、Romanのデモに便乗します。

text(x=rep(max(x)+3, 2), y=c(mean(y), mean(y2)), pos=4, labels=c('black line', 'red line'))
12
Matthew Plourde

ダイレクトラベルを使用するには、data.frameでデータを構造化してから、ggplot2、または以下の例ではラティスなどの高レベルのプロットシステムを使用する必要があります。

y <- rnorm(100, 10)
y2 <- rnorm(100, 20)
x <- 1:100
treatment <- rep(c("one group","another"),each=length(x))
df <- data.frame(x=c(x,x),y=c(y,y2),treatment)
library(lattice)
p <- xyplot(y~x,df,groups=treatment,type="l")
if(!require(directlabels)){
  install.packages("directlabels")
  library(directlabels)
}
print(direct.label(p))
print(direct.label(update(p,xlim=c(0,120)),last.points))
3

locator()は、既存のグラフをクリックして座標を取得するインタラクティブな方法です。

locator()を使用して、グラフ上のラベルの正しい座標を見つける方法について説明します。

ステップ1:グラフをプロットします:

_plot(1:100)
_

ステップ2:コンソールに次のように入力します。

_coords <- locator()
_

ステップ3:プロットを1回クリックしてから、プロットの左上にある_Stop .. Stop Locator_をクリックします(これにより、制御がRコンソールに戻ります) )。

ステップ4:返された座標を見つけます:

_coords
$x
[1] 30.26407
$y
[1] 81.66773
_

ステップ5:これで、次の座標を使用して既存のプロットにラベルを追加できます。

_text(x=30.26407, y=81.66773,label="This label appears where I clicked")
_

または

_text(x=coords$x, y=coords$y,label="This label appears where I clicked")
_

結果は次のとおりです。

enter image description here

ラベルは、クリックした場所の中央に表示されます。クリックした場所の最初の文字でラベルが表示されると、より良い結果が得られます。正しいパラメーターを見つけるには、textのヘルプを参照し、パラメーター_pos=4_を追加してください。

_text(x=30,y=80,pos=4,label = "hello")
_

ノート:

  • ラベルは、グラフ上のドットと同じx、y座標で表示されます。したがって、x = 100、y = 0右下に表示されます)、x = 0、y = 100左上に表示されます-)。
  • legend()を使用してラベルをプロットすることもできます(これにより、ラベルの周りにボックスが描画され、見栄えがよくなります)。
  • 凡例のフォントを変更する方法、およびグラフの右上に凡例を自動配置する方法については、 Rプロットの凡例のフォントファミリを変更する方法? を参照してください。
  • _ggplot2_はグラフを作成するためのゴールドスタンダードであるため、プロットではなく_ggplot2_に精通することをお勧めします。
3
Contango