plot() 関数

  • こちらで、こちらを引用している
  • こちらで、組み合わせ関係の離散的な関数をプロットしている。関数式から考える方が得意なヒトの場合には、値を作ってからプロットするのは面倒に思うかもしれない
  • ということで、関数表現から離れないでプロットすることを考える
  • plot()関数が、変数xと変数yの値を受け取ってプロットするほかに、
  • 1変数関数を受け取ってプロットすることができることがわかる
  • 関数には、定義済みの関数の場合もあれば、新規に定義した関数を使うこともできる
# 定義済み関数の場合
plot(sin) # xの範囲や描画オプションはすべてデフォルト
plot(sin,from=0,to=10) # xの範囲指定
plot(sin,from=0,to=10,n=20) # 範囲に加えて、点の数を指定
plot(gamma,from=-10,to=10) # ガンマ関数を正負にわたって描いてみる
  • xが負のときは、離散的なことがわかる(こちら参照
# xに整数値のみをとらせると「消える」
plot(gamma,from=-10,to=10,n=21)
# xを整数値でないようにずらすと「つながる」
plot(gamma,from=-10+0.5,to=10+0.5,n=1000)
#整数値をとらないように、xを無理数にするのもよい
plot(gamma,from=-10+pi,to=pi,n=1000)
  • 自分で関数を定義したい場合
  • 1次関数表現をしたいなら、curve()関数を用いて次のようにしてもよいが、
curve(x^3-3*x, -2, 2)
  • 関数のプロットのために2つも関数をアクティブボキャブラリにするのは、面倒臭いから、plot()関数でやってしまうことにする(curve()を覚えるのと、plot()を使って1次関数表現をプロットするルールを覚えるのとのどちらが、「面倒臭くない」かは人によって感じ方が違うかもしれないけれども、僕は圧倒的に、関数の数を少なくしてルールを入れる方が簡単と感じます)
plot(function(x)x^2+3*x)
# 離散的な場合は、xのdomain(定義域)を離散にして。。。
plot(function(x)choose(10,x),from=0,to=10,n=11,type="b")
plot(function(x)4^x,from=1,to=10,n=10,type="b")
plot(function(x)choose(100,x)*(1/6)^x*(1-1/6)^(100-x),from=0,to=100,n=101,type="b")