require "numo/gnuplot" dx = 0.0001 dif = ->(f, x) { (f.(x+dx)-f.(x))/dx }.curry f = ->(x) { x*x-2*x+1 } dif_f = dif.(f) xs = -5.step(5, 0.1).to_a ys1 = xs.map(&f) ys2 = xs.map(&dif_f) Numo.gnuplot do set terminal: :x11 unset :key set xrange: -5..5 set yrange: -5..10 set grid: true plot xs, ys1, {w: :lines, lw: 2}, xs, ys2, {w: :lines, lw: 2} end gets #終了待ち