class Cryplot::Plot

Overview

Class used to create a plot containing graphical elements

Defined in:

plot/plot.cr

Constructors

Instance Method Summary

Instance methods inherited from class Cryplot::BasePlot

autoclean(val : Bool)
autoclean : Bool
autoclean
, autoclean=(autoclean : Bool) autoclean=, border : Border border, cleanup cleanup, clear clear, data_filename : String data_filename, draw(what : String, using : String, expr : String)
draw(using : String, expr : String)
draw
, font_name(name : String) font_name, font_size(size : Int) font_size, gnuplot(cmd : String) gnuplot, grid : Grid grid, legend : Legend legend, palette(name : Cryplot::Palette)
palette : Cryplot::Palette
palette
, palette=(palette : Cryplot::Palette) palette=, repr : String repr, samples(value : Int) samples, save(filename : String) save, save_plot_data save_plot_data, show show, size(width : Int, height : Int) size, style_fill : FillStyle style_fill, this this, title(text : String)
title : Title
title
, to_s(io : IO) : Nil to_s

Constructor methods inherited from class Cryplot::BasePlot

new new

Constructor Detail

def self.new #

[View source]

Instance Method Detail

def annotate(x : Number, y : Number, text : String, options : String = "") #

Add a text annotation at the specified position. Position can be in data coordinates (default), graph coordinates (0-1), or screen coordinates.


[View source]
def annotate_graph(x : Number, y : Number, text : String, options : String = "") #

Add a text annotation at graph coordinates (0-1 range).


[View source]
def arrow(x1 : Number, y1 : Number, x2 : Number, y2 : Number, options : String = "") #

Add an arrow from (x1, y1) to (x2, y2).


[View source]
def arrow_graph(x1 : Number, y1 : Number, x2 : Number, y2 : Number, options : String = "") #

Add an arrow using graph coordinates (0-1 range).


[View source]
def box_width_absolute(val : Float64) #

Set the default width of boxes in plots containing boxes (in absolute mode). In absolute mode, a unit width is equivalent to one unit of length along the x axis.


[View source]
def box_width_relative(val : Float64) #

Set the default width of boxes in plots containing boxes (in relative mode). In relative mode, a unit width is equivalent to setting the boxes side by side.


[View source]
def colorbar_label(label : String) #

Set the colorbar label for heatmaps.


[View source]
def contour_levels(n : Int32) #

Set the number of contour levels.


[View source]
def draw_boxes(name : String, xcol : String | Int32, ycol : String | Int32, xwidthcol : String | Int32) #

Draw boxes with given values at @p xcol and @p ycol columns in file @p name as well as the box widths @p xwidthcol.


[View source]
def draw_boxes(name : String, xcol : String | Int32, ycol : String | Int32) #

Draw boxes with given values at @p xcol and @p ycol columns in file @p name.


[View source]
def draw_boxes(x : X, y : Y, xwidth : XW) : Draw forall X, Y, XW #

Draw boxes with given @p x and @p y vectors as well as the box widths @p xwidth.


[View source]
def draw_boxes(x : X, y : Y) : Draw forall X, Y #

Draw boxes with given @p x and @p y vectors.


[View source]
def draw_boxes_with_error_bars_y(name : String, xcol : String | Int32, ycol : String | Int32, ylowcol : String | Int32, yhighcol : String | Int32) #

Draw boxes with error bars along y with given values at @p xcol, @p ycol, @p ylowcol, and @p yhighcol columns in file @p name.


[View source]
def draw_boxes_with_error_bars_y(name : String, xcol : String | Int32, ycol : String | Int32, ydeltacol : String | Int32) #

Draw boxes with error bars along y with given values at @p xcol, @p ycol, @p ydeltacol columns in file @p name.


[View source]
def draw_boxes_with_error_bars_y(x : X, y : Y, ylow : YL, yhigh : YH) : Draw forall X, Y, YL, YH #

Draw boxes with error bars along y with given @p x, @p y, @p ylow, and @p yhigh vectors.


[View source]
def draw_boxes_with_error_bars_y(x : X, y : Y, ydelta : YD) : Draw forall X, Y, YD #

Draw boxes with error bars along y with given @p x, @p y, @p ydelta vectors.


[View source]
def draw_boxplot(data : Array(Array(Float64)), labels : Array(String) | Nil = nil) #

Draw a box plot (box-and-whisker plot) for the given data. Each element in data represents a group/category.


[View source]
def draw_boxplot(data : Array(Float64), label : String = "Data") #

Draw a single box plot for a data vector.


[View source]
def draw_broken_curve(x : X, y : Y) : Draw forall X, Y #

Draw a curve with given @p x and @p y vectors, breaking this curve whenever NaN is found in @p x or @p y.


[View source]
def draw_broken_curve_with_points(x : X, y : Y) : Draw forall X, Y #

Draw a curve with points with given @p x and @p y vectors, breaking this curve whenever NaN is found in @p x or @p y.


[View source]
def draw_contour(x : X, y : Y, z : Z) : Draw forall X, Y, Z #

Draw contour lines from x, y, z data.


[View source]
def draw_contour_filled(x : X, y : Y, z : Z) : Draw forall X, Y, Z #

Draw filled contours from x, y, z data.


[View source]
def draw_curve(name : String, xcol : String | Int32, ycol : String | Int32) #

Draw a curve with given values at @p xcol and @p ycol columns in file @p name.


[View source]
def draw_curve(x : X, y : Y) : Draw forall X, Y #

Draw a curve with given @p x and @p y vectors.


[View source]
def draw_curve_with_error_bars_x(name : String, xcol : String | Int32, ycol : String | Int32, xlowcol : String | Int32, xhighcol : String | Int32) #

Draw a curve with error bars along x with given values at @p xcol, @p ycol, @p xlowcol, and @p xhighcol columns in file @p name.


[View source]
def draw_curve_with_error_bars_x(name : String, xcol : String | Int32, ycol : String | Int32, xdeltacol : String | Int32) #

Draw a curve with error bars along x with given values at @p xcol, @p ycol, and @p xdeltacol columns in file @p name.


[View source]
def draw_curve_with_error_bars_x(x : X, y : Y, xlow : XL, xhigh : XH) : Draw forall X, Y, XL, XH #

Draw a curve with error bars along x with given @p x, @p y, @p xlow, and @p xhigh vectors.


[View source]
def draw_curve_with_error_bars_x(x : X, y : Y, xdelta : XD) : Draw forall X, Y, XD #

Draw a curve with error bars along x with given @p x, @p y, and @p xdelta vectors.


[View source]
def draw_curve_with_error_bars_xy(name : String, xcol : String | Int32, ycol : String | Int32, xlowcol : String | Int32, xhighcol : String | Int32, ylowcol : String | Int32, yhighcol : String | Int32) #

Draw a curve with error bars along x and y with given values at @p xcol, @p ycol, @p xlowcol, @p xhighcol, @p ylowcol, and @p yhighcol columns in file @p name.


[View source]
def draw_curve_with_error_bars_xy(x : X, y : Y, xlow : XL, xhigh : XH, ylow : YL, yhigh : YH) : Draw forall X, Y, XL, XH, YL, YH #

Draw a curve with error bars along x and y with given @p x, @p y, @p xlow, @p xhigh, @p ylow, and @p yhigh vectors.


[View source]
def draw_curve_with_error_bars_xy(name : String, xcol : String | Int32, ycol : String | Int32, xdeltacol : String | Int32, ydeltacol : String | Int32) #

Draw a curve with error bars along x and y with given values at @p xcol, @p ycol, @p xdeltacol, and @p ydeltacol columns in file @p name.


[View source]
def draw_curve_with_error_bars_xy(x : X, y : Y, xdelta : XD, ydelta : YD) : Draw forall X, Y, XD, YD #

Draw a curve with error bars along x and y with given @p x, @p y, @p xdelta, and @p ydelta vectors.


[View source]
def draw_curve_with_error_bars_y(name : String, xcol : String | Int32, ycol : String | Int32, ylowcol : String | Int32, yhighcol : String | Int32) #

Draw a curve with error bars along y with given values at @p xcol, @p ycol, @p ylowcol, and @p yhighcol columns in file @p name.


[View source]
def draw_curve_with_error_bars_y(name : String, xcol : String | Int32, ycol : String | Int32, ydeltacol : String | Int32) #

Draw a curve with error bars along y with given values at @p xcol, @p ycol, and @p ydeltacol columns in file @p name.


[View source]
def draw_curve_with_error_bars_y(x : X, y : Y, ylow : YL, yhigh : YH) : Draw forall X, Y, YL, YH #

Draw a curve with error bars along y with given @p x, @p y, @p xlow, and @p xhigh vectors.


[View source]
def draw_curve_with_error_bars_y(x : X, y : Y, ydelta : XD) : Draw forall X, Y, XD #

Draw a curve with error bars along y with given @p x, @p y, and @p xdelta vectors.


[View source]
def draw_curve_with_points(name : String, xcol : String | Int32, ycol : String | Int32) #

Draw a curve with points with given values at @p xcol and @p ycol columns in file @p name.


[View source]
def draw_curve_with_points(x : X, y : Y) : Draw forall X, Y #

Draw a curve with points with given @p x and @p y vectors.


[View source]
def draw_curve_with_points_y2(x : X, y : Y) : Draw forall X, Y #

Draw a curve with points with given x and y vectors on the secondary y-axis (y2).


[View source]
def draw_curve_y2(x : X, y : Y) : Draw forall X, Y #

Draw a curve with given x and y vectors on the secondary y-axis (y2).


[View source]
def draw_curves_filled(x : X, y1 : Y1, y2 : Y2) : Draw forall X, Y1, Y2 #

Draw curves with given @p x, @p y1 and @p y2 vectors with filled areas above / below / between curves.


[View source]
def draw_curves_filled(x : X, y : Y) : Draw forall X, Y #

Draw curves with given @p x and @p y vectors with filled areas above / below axes.


[View source]
def draw_dots(name : String, xcol : String | Int32, ycol : String | Int32) #

Draw dots with given values at @p xcol and @p ycol columns in file @p name.


[View source]
def draw_dots(x, y) #

Draw dots with given @p x and @p y vectors.


[View source]
def draw_error_bars_x(name : String, xcol : String | Int32, ycol : String | Int32, xlowcol : String | Int32, xhighcol : String | Int32) #

Draw error bars along x with given values at @p xcol, @p ycol, @p xlowcol, and @p xhighcol columns in file @p name.


[View source]
def draw_error_bars_x(name : String, xcol : String | Int32, ycol : String | Int32, xdeltacol : String | Int32) #

Draw error bars along x with given values at @p xcol, @p ycol, and @p xdeltacol columns in file @p name.


[View source]
def draw_error_bars_x(x, y, xlow, xhigh) #

Draw error bars along x with given @p x, @p y, @p xlow, and @p xhigh vectors.


[View source]
def draw_error_bars_x(x, y, xdelta) #

Draw error bars along x with given @p x, @p y, and @p xdelta vectors.


[View source]
def draw_error_bars_xy(name : String, xcol : String | Int32, ycol : String | Int32, xlowcol : String | Int32, xhighcol : String | Int32, ylowcol : String | Int32, yhighcol : String | Int32) #

Draw error bars along x and y with given values at @p xcol, @p ycol, @p xlowcol, @p xhighcol, @p ylowcol, and @p yhighcol columns in file @p name.


[View source]
def draw_error_bars_xy(x, y, xlow, xhigh, ylow, yhigh) #

Draw error bars along x and y with given @p x, @p y, @p xlow, @p xhigh, @p ylow, and @p yhigh vectors.


[View source]
def draw_error_bars_xy(name : String, xcol : String | Int32, ycol : String | Int32, xdeltacol : String | Int32, ydeltacol : String | Int32) #

Draw error bars along x and y with given values at @p xcol, @p ycol, @p xdeltacol, and @p ydeltacol columns in file @p name.


[View source]
def draw_error_bars_xy(x, y, xdelta, ydelta) #

Draw error bars along x and y with given @p x, @p y, @p xdelta, and @p ydelta vectors.


[View source]
def draw_error_bars_y(name : String, xcol : String | Int32, ycol : String | Int32, ylowcol : String | Int32, yhighcol : String | Int32) #

Draw error bars along y with given values at @p xcol, @p ycol, @p ylowcol, and @p yhighcol columns in file @p name.


[View source]
def draw_error_bars_y(name : String, xcol : String | Int32, ycol : String | Int32, ydeltacol : String | Int32) #

Draw error bars along y with given values at @p xcol, @p ycol, and @p ydeltacol columns in file @p name.


[View source]
def draw_error_bars_y(x, y, ylow, yhigh) #

Draw error bars along y with given @p x, @p y, @p ylow, and @p yhigh vectors.


[View source]
def draw_error_bars_y(x, y, ydelta) #

Draw error bars along y with given @p x, @p y, and @p ydelta vectors.


[View source]
def draw_grouped_bars(categories : Array(String), series : Hash(String, Array(Float64))) #

Draw grouped bar chart with categories and multiple series. categories: labels for x-axis series: hash of series_name => values


[View source]
def draw_heatmap(x : X, y : Y, z : Z) : Draw forall X, Y, Z #

Draw a heatmap with explicit x, y coordinates and z values.


[View source]
def draw_heatmap(matrix : Array(Array(Float64))) #

Draw a heatmap from a 2D matrix. The matrix should be an array of arrays where matrix[row][col] = value.


[View source]
def draw_heatmap_labeled(matrix : Array(Array(Float64)), row_labels : Array(String), col_labels : Array(String), value_range : Tuple(Float64, Float64) | Nil = nil) #

Draw a labeled heatmap from a 2D matrix with row and column labels. Useful for correlation matrices, confusion matrices, etc. matrix: 2D array where matrix[row][col] = value row_labels: labels for y-axis (rows) col_labels: labels for x-axis (columns) value_range: optional tuple {min, max} for color scale (e.g., {-1.0, 1.0} for correlation)


[View source]
def draw_histogram(name : String, ycol : String | Int32) #

Draw a histogram with given values at @p ycol column in file @p name.


[View source]
def draw_histogram(y) #

Draw a histogram for the given @p y vector.


[View source]
def draw_impulses(name : String, xcol : String | Int32, ycol : String | Int32) #

Draw impulses with given values at @p xcol and @p ycol columns in file @p name.


[View source]
def draw_impulses(x, y) #

Draw impulses with given @p x and @p y vectors.


[View source]
def draw_points(name : String, xcol : String | Int32, ycol : String | Int32) #

Draw points with given values at @p xcol and @p ycol columns in file @p name.


[View source]
def draw_points(x, y) #

Draw points with given @p x and @p y vectors.


[View source]
def draw_points_y2(x : X, y : Y) : Draw forall X, Y #

Draw points with given x and y vectors on the secondary y-axis (y2).


[View source]
def draw_scatter(x : X, y : Y) : Draw forall X, Y #

Draw a scatter plot with given x and y vectors. This is an alias for draw_points but with a more intuitive name.


[View source]
def draw_scatter_color(x : X, y : Y, color : C) : Draw forall X, Y, C #

Draw a scatter plot with color mapping based on a third variable. The color values determine the color of each point using the current palette.


[View source]
def draw_scatter_color_size(x : X, y : Y, color : C, size : S) : Draw forall X, Y, C, S #

Draw a scatter plot with both color and size mapping. Color is mapped to the third column, size to the fourth.


[View source]
def draw_scatter_size(x : X, y : Y, size : S) : Draw forall X, Y, S #

Draw a scatter plot with size mapping based on a third variable. The size values determine the size of each point.


[View source]
def draw_stacked_bars(categories : Array(String), series : Hash(String, Array(Float64))) #

Draw stacked bar chart with categories and multiple series.


[View source]
def draw_steps(name : String, xcol : String | Int32, ycol : String | Int32) #

Draw steps with given values at @p xcol and @p ycol columns in file @p name. Identical to @ref drawStepsChangeFirstX.


[View source]
def draw_steps(x, y) #

Draw steps with given @p x and @p y vectors. Identical to @ref drawStepsChangeFirstX.


[View source]
def draw_steps_change_first_x(name : String, xcol : String | Int32, ycol : String | Int32) #

Draw steps with given values at @p xcol and @p ycol columns in file @p name with steps along x changes first.


[View source]
def draw_steps_change_first_x(x, y) #

Draw steps with given @p x and @p y vectors with steps along x changes first.


[View source]
def draw_steps_change_first_y(name : String, xcol : String | Int32, ycol : String | Int32) #

Draw steps with given values at @p xcol and @p ycol columns in file @p name with steps along y changes first.


[View source]
def draw_steps_change_first_y(x, y) #

Draw steps with given @p x and @p y vectors with steps along y changes first.


[View source]
def draw_steps_filled(name : String, xcol : String | Int32, ycol : String | Int32) #

Draw steps with given values at @p xcol and @p ycol columns in file @p name with filled area below steps.


[View source]
def draw_steps_filled(x, y) #

Draw steps with given @p x and @p y vectors with filled area below steps.


[View source]
def draw_steps_histogram(name : String, xcol : String | Int32, ycol : String | Int32) #

Draw steps with given values at @p xcol and @p ycol columns in file @p name in a histogram style


[View source]
def draw_steps_histogram(x, y) #

Draw steps with given @p x and @p y vectors in a histogram style


[View source]
def draw_with_cols(name : String, with_ : String, cols : Array(String | Int32)) #

Draw plot object with given style and given vectors (e.g., plot.draw("lines", x, y)).


[View source]
def draw_with_vecs(with_ : String, x : X, *vecs : Array) : Draw forall X #

Draw plot object with given style and given vectors (e.g., plot.draw("lines", x, y)).


[View source]
def draw_with_vecs_containing_nan(with_ : String, x : X, *vecs : Array) : Draw forall X #

Draw plot object with given style and given vectors (e.g., plot.draw("lines", x, y)) that may contain NaN values.


[View source]
def heatmap_palette(style : Symbol) #

Set the color palette for heatmaps. Predefined options: :diverging (red-white-green), :sequential (white-blue), :thermal (black-red-yellow-white)


[View source]
def hline(y : Number, options : String = "") #

Add a horizontal line at the specified y value.


[View source]
def repr : String #

[View source]
def rtics : Cryplot::MajorTics #

Return the specifications of the grid lines along major rtics.


[View source]
def rtics_major : MajorTics #

Return the specifications of the grid lines along minor rtics.


[View source]
def rtics_minor : MinorTics #

Return the specifications of the grid lines along minor rtics.


[View source]
def style_histogram : HistogramStyle #

an object that permits histogram style to be customized.


[View source]
def tics : Tics #

tics of the plot and return a reference to the corresponding specs object.


[View source]
def to_s(io : IO) : Nil #
Description copied from class Cryplot::BasePlot

convert this plot object into a gnuplot formatted string.


[View source]
def vline(x : Number, options : String = "") #

Add a vertical line at the specified x value.


[View source]
def xlabel(label : String) #

Set the label of the x-axis and return a reference to the corresponding specs object.


[View source]
def xlog(base : Int32 = 10) #

Set the x-axis to logarithmic scale.


[View source]
def xlog_off #

Disable logarithmic scale on x-axis.


[View source]
def xrange(min : StringOrFloat, max : StringOrFloat) #

Set the x-range of the plot (also possible with empty values or autoscale options (e.g. "", "*")).


[View source]
def xtics : Cryplot::MajorTics #

Return the specifications of the grid lines along major xtics on the bottom axis.


[View source]
def xtics_major_bottom : MajorTics #

Return the specifications of the grid lines along major xtics on the bottom axis.


[View source]
def xtics_major_top : MajorTics #

Return the specifications of the grid lines along major xtics on the top axis.


[View source]
def xtics_minor_bottom : MinorTics #

Return the specifications of the grid lines along minor xtics on the bottom axis.


[View source]
def xtics_minor_top : MinorTics #

Return the specifications of the grid lines along minor xtics on the top axis.


[View source]
def xtime_display(format : String) #

Set the display format for x-axis time labels. The format string uses strftime format specifiers.


[View source]
def xtime_format(format : String) #

Set the x-axis to use time/date format. The format string uses strftime format specifiers (e.g., "%Y-%m-%d", "%H:%M:%S").


[View source]
def xylog(base : Int32 = 10) #

Set both x and y axes to logarithmic scale.


[View source]
def y2label(label : String) #

Set the label of the secondary y-axis (y2) and return a reference to the corresponding specs object.


[View source]
def y2range(min : StringOrFloat, max : StringOrFloat) #

Set the y2-range of the plot (also possible with empty values or autoscale options (e.g. "", "*")).


[View source]
def y2tics_show #

Enable the secondary y-axis (y2) tics.


[View source]
def ylabel(label : String) #

Set the label of the y-axis and return a reference to the corresponding specs object.


[View source]
def ylog(base : Int32 = 10) #

Set the y-axis to logarithmic scale.


[View source]
def ylog_off #

Disable logarithmic scale on y-axis.


[View source]
def yrange(min : StringOrFloat, max : StringOrFloat) #

Set the y-range of the plot (also possible with empty values or autoscale options (e.g. "", "*")).


[View source]
def ytics : Cryplot::MajorTics #

Return the specifications of the grid lines along major ytics on the left axis.


[View source]
def ytics_major_left : MajorTics #

Return the specifications of the grid lines along major ytics on the left axis.


[View source]
def ytics_major_right : MajorTics #

Return the specifications of the grid lines along major ytics on the right axis.


[View source]
def ytics_minor_left : MinorTics #

Return the specifications of the grid lines along minor ytics on the left axis.


[View source]
def ytics_minor_right : MinorTics #

Return the specifications of the grid lines along minor ytics on the right axis.


[View source]
def ytime_display(format : String) #

Set the display format for y-axis time labels.


[View source]
def ytime_format(format : String) #

Set the y-axis to use time/date format.


[View source]
def ztics : Cryplot::MajorTics #

Return the specifications of the grid lines along major ztics.


[View source]
def ztics_major : MajorTics #

Return the specifications of the grid lines along major ztics.


[View source]
def ztics_minor : MinorTics #

Return the specifications of the grid lines along minor ztics.


[View source]