# # = GSL::Histogram2d class # # == Class methods # --- # * GSL::Histogram2d.alloc(nx, ny) # * GSL::Histogram2d.alloc(xrange, yrange) # * GSL::Histogram2d.alloc(nx, xmin, xmax, ny, ymin, ymax) # * GSL::Histogram2d.alloc(nx, [xmin, xmax], ny, [ymin, ymax]) # # Constructors. # # 1. With sizes # >> h2 = GSL::Histogram2d.alloc(2, 3) # size 6 # >> h2.xrange # => GSL::Histogram::Range: # [ 0.000e+00 1.000e+00 2.000e+00 ] # >> h2.yrange # => GSL::Histogram::Range: # [ 0.000e+00 1.000e+00 2.000e+00 3.000e+00 ] # >> h2.bin # => GSL::Histogram::Bin: # [ 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ] # >> h2.xrange.class.superclass # => GSL::Vector::View::ReadOnly # >> h2.bin.class.superclass # => GSL::Vector::View::ReadOnly # # 1. With ranges # >> h2 = Histogram2d.alloc([3, 6, 7], [2, 3, 8]) # >> h2.xrange # => GSL::Histogram::Range: # [ 3.000e+00 6.000e+00 7.000e+00 ] # >> h2.yrange # => GSL::Histogram::Range: # [ 2.000e+00 3.000e+00 8.000e+00 ] # >> h2.bin # => GSL::Histogram::Bin: # [ 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ] # # 1. With sizes and ranges # >> h2 = Histogram2d.alloc(4, [0, 4], 3, [1, 5]) # >> h2.xrange # => GSL::Histogram::Range: # [ 0.000e+00 1.000e+00 2.000e+00 3.000e+00 4.000e+00 ] # >> h2.yrange # => GSL::Histogram::Range: # [ 1.000e+00 2.333e+00 3.667e+00 5.000e+00 ] # # --- # * GSL::Histogram2d.alloc_uniform(nx, xmin, xmax, ny, ymin, ymax) # * GSL::Histogram2d.equal_bins_p(h1, h2) # # # == Methods # --- # * GSL::Histogram2d#set_ranges(vx, vy) # # This sets the ranges of the existing histogram using # two {GSL::Vector}[link:vector_rdoc.html] objects or arrays. # --- # * GSL::Histogram2d#set_ranges_uniform(xmin, xmax, ymin, ymax) # * GSL::Histogram2d#set_ranges_uniform([xmin, xmax], [ymin, ymax]) # # This sets the ranges of the existing histogram <tt>self</tt> to cover # the ranges <tt>xmin</tt> to <tt>xmax</tt> and <tt>ymin</tt> to <tt>ymax</tt> uniformly. # The values of the histogram bins are reset to zero. # # --- # * GSL::Histogram2d#clone # * GSL::Histogram2d#duplicate # # Returns a newly created histogram which is an exact copy of the # histogram <tt>self</tt>. # # --- # * GSL::Histogram2d#increment(x, y, weight = 1) # * GSL::Histogram2d#accumulate(x, y, weight = 1) # * GSL::Histogram2d#fill(x, y, weight = 1) # # These method update the histogram <tt>self</tt> by adding <tt>weight</tt> # to the bin whose <tt>x</tt> and <tt>y</tt> ranges contain the coordinates (x,y). # If (x,y) lies outside the limits of the histogram then none of the # bins are modified. # # --- # * GSL::Histogram2d#increment2(x, y, weight = 1) # * GSL::Histogram2d#accumulate2(x, y, weight = 1) # * GSL::Histogram2d#fill2(x, y, weight = 1) # # These are similar to <tt>GSL::Histogram#increment/accumulate/fill</tt>, # but when (x,y) lies outside the limits of the histogram then the edge # bin is incremented. # # --- # * GSL::Histogram2d#get(i[, j]) # * GSL::Histogram2d#get([i, j]) # * GSL::Histogram2d#[i, j] # # Return the contents of the <tt>(i,j)</tt>-th bin of the histogram <tt>self</tt>. # # --- # * GSL::Histogram2d#get_xrange(i) # * GSL::Histogram2d#get_yrange(j) # # These methods find the upper and lower range limits of the <tt>i</tt>-th # and <tt>j</tt>-th bins in the x and y directions of the histogram <tt>self</tt>. # # Ex: # >> h2 = Histogram2d.alloc(2, [0, 2], 3, [1, 4]) # >> h2.get_xrange(1) # => [1.0, 2.0] # >> h2.get_yrange(1) # => [2.0, 3.0] # # --- # * GSL::Histogram2d#xrange # * GSL::Histogram2d#yrange # # These methods returns the range of histogram as <tt>Vector::View</tt> objects. # # --- # * GSL::Histogram2d#xmax # * GSL::Histogram2d#xmin # * GSL::Histogram2d#ymax # * GSL::Histogram2d#ymin # * GSL::Histogram2d#nx # * GSL::Histogram2d#ny # # These methodss return the maximum upper and minimum lower range limits # and the number of bins for the x and y directions of the histogram <tt>self</tt>. # # --- # * GSL::Histogram2d#reset # # Resets all the bins of the histogram <tt>self</tt> to zero. # # --- # * GSL::Histogram2d#find(x, y) # # Finds the indices i and j to the to the bin which covers the # coordinates (<tt>x,y</tt>). # # --- # * GSL::Histogram2d#max_val # # Returns the maximum value contained in the histogram bins. # # --- # * GSL::Histogram2d#max_bin # # Returns the indices (i,j) of the bin containing the maximum value in # the histogram <tt>self</tt>. # # --- # * GSL::Histogram2d#min_val # # Returns the minimum value contained in the histogram bins. # --- # * GSL::Histogram2d#min_bin # # Returns the indices (i,j) of the bin containing the minimum value # in the histogram <tt>self</tt>. # # --- # * GSL::Histogram2d#xmean # # Returns the mean of the histogrammed x variable, where the histogram # is regarded as a probability distribution. # Negative bin values are ignored for the purposes of this calculation. # # --- # * GSL::Histogram2d#xsigma # # Returns the standard deviation of the histogrammed x variable, # where the histogram is regarded as a probability distribution. # Negative bin values are ignored for the purposes of this calculation. # # --- # * GSL::Histogram2d#ymean # # Returns the mean of the histogrammed y variable, where the histogram # is regarded as a probability distribution. Negative bin values are # ignored for the purposes of this calculation. # # --- # * GSL::Histogram2d#ysigma # # Returns the standard deviation of the histogrammed y variable, # where the histogram is regarded as a probability distribution. # Negative bin values are ignored for the purposes of this calculation. # # --- # * GSL::Histogram2d#cov # # Returns the covariance of the histogrammed x and y variables, # where the histogram is regarded as a probability distribution. # Negative bin values are ignored for the purposes of this calculation. # # --- # * GSL::Histogram2d#sum # * GSL::Histogram2d#integral # # Return the sum of all bin values. Negative bin values are included in the sum. # --- # * GSL::Histogram2d#add # * GSL::Histogram2d#sub # * GSL::Histogram2d#mul # * GSL::Histogram2d#div # * GSL::Histogram2d#scale(val) # * GSL::Histogram2d#shift(val) # * GSL::Histogram2d#fwrite(io) # * GSL::Histogram2d#fwrite(filename) # * GSL::Histogram2d#fread(io) # * GSL::Histogram2d#fread(filename) # * GSL::Histogram2d#fprintf(io, range_format, bin_format) # * GSL::Histogram2d#fprintf(filename, range_format, bin_format) # * GSL::Histogram2d#fscanf(io) # * GSL::Histogram2d#fscanf(filename) # # # --- # * GSL::Histogram2d#xproject(jstart = 0, jend = ny-1) # # Creates a <tt>GSL::Histogram</tt> object by projecting the 2D histogram # <tt>self</tt> onto the x-axis over the y-range from <tt>jstart</tt> to <tt>jend</tt>. # # --- # * GSL::Histogram2d#yproject(istart = 0, iend = nx-1) # # Creates a <tt>GSL::Histogram</tt> object by projecting the 2D histogram # <tt>self</tt> onto the y-axis over the x-range from <tt>istart</tt> to <tt>iend</tt>. # # == Pdf class # --- # * GSL::Histogram2d::Pdf.alloc(nx, ny) # # Constructors # # --- # * GSL::Histogram2d::Pdf#init(h) # # Initializer with a GSL::Histogram2d object <tt>h</tt>. # # --- # * GSL::Histogram2d::Pdf#sample(r1, r2) # # # == Example # #!/usr/bin/env ruby # require("gsl") # # N = 10000 # BINS = 100 # # rng = Rng.new(2) # h2 = Histogram2d.alloc(BINS, [-5, 5], BINS, [-8, 8]) # # sig1 = 1.0 # sig2 = 2.0 # # for i in 0...N do # r1 = rng.gaussian(sig1) # r2 = rng.gaussian(sig2) # h2.increment(r1, r2) # end # # hx = h2.xproject # hy = h2.yproject # printf("%f %f %f %f\n", h2.xsigma, h2.ysigma, hx.sigma, hy.sigma) # GSL::graph(hx, hy, "-T X -C -g 3") # # # {prev}[link:hist_rdoc.html] # {next}[link:hist3d_rdoc.html] # # {Reference index}[link:ref_rdoc.html] # {top}[link:index.html] #