web-dev-qa-db-ja.com

Rで関数曲線をプロットする方法

関数のような単純な曲線を描くための代替手段は何ですか

eq = function(x){x*x}

rで?

明らかな質問に聞こえますが、これらの関連する質問はstackoverflowでしか見つけることができませんでしたが、それらはすべてより具体的です

重複した質問を書いていないことを願っています。

56
sjdh

こういう意味?

> eq = function(x){x*x}
> plot(eq(1:1000), type='l')

Plot of eq over range 1:1000

(または、関数に関連する値の範囲)

23
Eric

私はウェブ上でいくつか検索しましたが、これは私が見つけたいくつかの方法です:

最も簡単な方法は、定義済みの関数なしで曲線を使用することです

curve(x^2, from=1, to=50, , xlab="x", ylab="y")

enter image description here

事前に定義された関数がある場合にも曲線を使用できます

eq = function(x){x*x}
curve(eq, from=1, to=50, xlab="x", ylab="y")

enter image description here

Ggplotを使用する場合は、qplotを選択します

library("ggplot2")
eq = function(x){x*x}
qplot(c(1,50), fun=eq, stat="function", geom="line", xlab="x", ylab="y")

enter image description here

およびggplot

library("ggplot2")
eq = function(x){x*x}
ggplot(data.frame(x=c(1, 50)), aes(x=x)) + stat_function(fun=eq, geom="line") + xlab("x") + ylab("y")

enter image description here

64
sjdh

plotにはplot.functionメソッドがあります

plot(eq, 1, 1000)

または

curve(eq, 1, 1000)
26
GSee

ラティスバージョンは次のとおりです。

library(lattice)
eq<-function(x) {x*x}
X<-1:1000
xyplot(eq(X)~X,type="l")

Lattice output

1
John Paul

追加の設定が必要なラティスソリューション:

library(lattice)
distribution<-function(x) {2^(-x*2)}
X<-seq(0,10,0.00001)
xyplot(distribution(X)~X,type="l", col = rgb(red = 255, green = 90, blue = 0, maxColorValue = 255), cex.lab = 3.5, cex.axis = 3.5, lwd=2 )
  1. Xの値の範囲が1以外の増分でプロットされる必要がある場合、例えば使用できる0.00001:

X <-seq(0,10,0.00001)

  1. Rgb値を定義することにより、線の色を変更できます。

col = rgb(赤= 255、緑= 90、青= 0、maxColorValue = 255)

  1. 以下を設定することにより、プロットされた線の幅を変更できます。

lwd = 2

  1. ラベルのサイズを変更するには、ラベルをスケーリングします。

cex.lab = 3.5、cex.axis = 3.5

Example plot

1
mrk