From b56e8b7fbcae98e5fa92d8b8153680cf415ce018 Mon Sep 17 00:00:00 2001 From: Giorgio Calderone Date: Thu, 2 Apr 2020 15:27:14 +0200 Subject: [PATCH] Docs updated --- dev/advanced/index.html | 12 ++++++------ dev/api/index.html | 24 ++++++++++++------------ dev/assets/ex007a.png | Bin 16581 -> 16805 bytes dev/assets/ex011.png | Bin 18600 -> 20912 bytes dev/assets/ex013a.png | Bin 10850 -> 11578 bytes dev/assets/ex013b.png | Bin 10002 -> 9402 bytes dev/assets/ex014a.png | Bin 10379 -> 11130 bytes dev/assets/ex014b.png | Bin 11158 -> 11178 bytes dev/assets/ex014c.png | Bin 13268 -> 13309 bytes dev/assets/ex014d.png | Bin 39614 -> 38968 bytes dev/basic/index.html | 4 ++-- dev/examples/index.html | 2 +- dev/index.html | 2 +- dev/install/index.html | 4 ++-- dev/search/index.html | 2 +- dev/search_index.js | 2 +- dev/style/index.html | 18 ++++++++++++++++++ dev/terminals/index.html | 4 ++-- 18 files changed, 46 insertions(+), 28 deletions(-) create mode 100644 dev/style/index.html diff --git a/dev/advanced/index.html b/dev/advanced/index.html index e3323a5..8268c7f 100644 --- a/dev/advanced/index.html +++ b/dev/advanced/index.html @@ -1,5 +1,5 @@ -Advanced usage · Gnuplot.jl

Advanced usage

Here we will show a few advanced techniques for data visualization using Gnuplot.jl.

Named datasets

A dataset may have an associated name whose purpose is to use it multiple times for plotting, while sending it only once to gnuplot. A dataset name must begin with a $.

A named dataset is defined as a Pair{String, Tuple}, e.g.:

"\$name" => (1:10,)

and can be used as an argument to both @gp and gsp, e.g.:

x = range(-2pi, stop=2pi, length=100);
+Advanced usage · Gnuplot.jl

Advanced usage

Here we will show a few advanced techniques for data visualization using Gnuplot.jl.

Named datasets

A dataset may have an associated name whose purpose is to use it multiple times for plotting, while sending it only once to gnuplot. A dataset name must begin with a $.

A named dataset is defined as a Pair{String, Tuple}, e.g.:

"\$name" => (1:10,)

and can be used as an argument to both @gp and gsp, e.g.:

x = range(-2pi, stop=2pi, length=100);
 y = sin.(x)
 name = "\$MyDataSet1"
 @gp name=>(x, y) "plot $name w l lc rgb 'black'" "pl $name u 1:(1.5*\$2) w l lc rgb 'red'"

Both curves use the same input data, but the red curve has the second column (\$2, corresponding to the y value) multiplied by a factor 1.5.

A named dataset comes in hand also when using gnuplot to fit experimental data to a model, e.g.:

# Generate data and some noise to simulate measurements
@@ -16,9 +16,9 @@ name = "\$MyDataSet1"
 a = gpexec("print a"),
 b = gpexec("print b"),
 c = gpexec("print c"))
┌ Info: Best fit values:
-│   a = "1.40227450305279"
-│   b = "0.296215599996585"
-└   c = "0.700772054919827"

A named dataset is available until the session is reset, i.e. as long as :- is used as first argument to @gp.

Multiplot

Gnuplot.jl can draw multiple plots in the same figure by exploiting the multiplot command. Each plot is identified by a positive integer number, which can be used as argument to @gp to redirect commands to the appropriate plot.

Continuing previous example we can plot both data and best fit model (in plot 1) and residuals (in plot 2):

@gp :- "set multiplot layout 2,1"
+│   a = "1.49027843564636"
+│   b = "0.291241150034077"
+└   c = "0.712856583575748"

A named dataset is available until the session is reset, i.e. as long as :- is used as first argument to @gp.

Multiplot

Gnuplot.jl can draw multiple plots in the same figure by exploiting the multiplot command. Each plot is identified by a positive integer number, which can be used as argument to @gp to redirect commands to the appropriate plot.

Continuing previous example we can plot both data and best fit model (in plot 1) and residuals (in plot 2):

@gp :- "set multiplot layout 2,1"
 @gp :- 1 "p $name w errorbars t 'Data'"
 @gp :-   "p $name u 1:(f(\$1)) w l t 'Best fit model'"
 @gp :- 2 "p $name u 1:((f(\$1)-\$2) / \$3):(1) w errorbars t 'Resid. [{/Symbol s}]'"
@@ -63,7 +63,7 @@ for direction in [-1,1]
     end
 end
 @gsp

Here the frame variable is used as multiplot index. The animation can be saved in a GIF file with:

save(term="gif animate size 480,360 delay 5", output="assets/animation.gif")

Direct command execution

When gnuplot commands are passed to @gp or @gsp they are stored in a session for future use, or to be saved in Gnuplot scripts. If you simply wish to execute a command, without storing it in the session, use gpexec. E.g. if you wish to temporarily change the current terminal:

julia> gpexec("set term wxt");

The gnuplot process replies are returned as a string, e.g.:

julia> gpexec("print GPVAL_TERM")
-"wxt"

You may also provide a session ID as first argument (see Multiple sessions, to redirect the command to a specific session.

Dry sessions

A "dry session" is a session with no underlying gnuplot process. To enable dry sessions type:

julia> Gnuplot.options.dry = true;

before starting a session (see also Options). Note that the dry option is a global one, i.e. it affects all sessions started after setting the option.

Clearly, no plot can be generated in dry sessions. Still, they are useful to run Gnuplot.jl code without raising errors (no attempt will be made to communicate with the underlying process). Moreover, Gnuplot scripts can also be generated in a dry session, without the additional overhead of sending data to the gnuplot process.

If a gnuplot process can not be started the package will print a warning, and automatically enable dry sessions.

Options

Thepackage options are stored in a global structure available in Julia as Gnuplot.option (the type of the structure is Gnuplot.Options). The most important settings are as follows:

  • dry::Bool: if true all new sessions will be started Dry sessions. Default is false, but if the package is not able to start a gnuplot it will automatically switch to false;

  • init::Vector{String}: This vector can be used to push! initialization commands to be executed when a new session is started. Default is an empty vector. It can be used to, e.g., set a custom terminal for all new sessions:

julia> push!(Gnuplot.options.init, "set term sixelgd");

Note that this is a global option, i.e. it will affect all new sessions. Also note that the commands in Gnuplot.options.init are not saved in Gnuplot scripts;

  • verbose::Bool: a flag to set verbosity of the package. In particular if it is true all communication with the underlying process will be printed on stdout. E.g.:

+"wxt"

You may also provide a session ID as first argument (see Multiple sessions) to redirect the command to a specific session.

Dry sessions

A "dry session" is a session with no underlying gnuplot process. To enable dry sessions type:

julia> Gnuplot.options.dry = true;

before starting a session (see also Options). Note that the dry option is a global one, i.e. it affects all sessions started after setting the option.

Clearly, no plot can be generated in dry sessions. Still, they are useful to run Gnuplot.jl code without raising errors (no attempt will be made to communicate with the underlying process). Moreover, Gnuplot scripts can also be generated in a dry session, without the additional overhead of sending data to the gnuplot process.

If a gnuplot process can not be started the package will print a warning, and automatically enable dry sessions.

Options

Thepackage options are stored in a global structure available in Julia as Gnuplot.option (the type of the structure is Gnuplot.Options). The most important settings are as follows:

  • dry::Bool: if true all new sessions will be started Dry sessions. Default is false, but if the package is not able to start a gnuplot it will automatically switch to false;

  • init::Vector{String}: This vector can be used to push! initialization commands to be executed when a new session is started. Default is an empty vector. It can be used to, e.g., set a custom terminal for all new sessions:

julia> push!(Gnuplot.options.init, "set term sixelgd");

Note that this is a global option, i.e. it will affect all new sessions. Also note that the commands in Gnuplot.options.init are not saved in Gnuplot scripts;

  • verbose::Bool: a flag to set verbosity of the package. In particular if it is true all communication with the underlying process will be printed on stdout. E.g.:

 julia> Gnuplot.options.verbose = true;
 
 julia> x = 1.:10;
@@ -92,4 +92,4 @@ GNUPLOT (default) set output 'output.png'
 GNUPLOT (default) plot  \
   $data1 w l t 'Parabola'
 GNUPLOT (default) set output
-GNUPLOT (default) set term wxt 0 enhanced

Each line reports the package name (GNUPLOT), the session name (default), the command or string being sent to gnuplot process, and the returned response (line starting with ->). Default value is false;

  • cmd::String: command to start the gnuplot process, default value is "gnuplot". If you need to specify a custom path to the gnuplot executable you may change this value;

  • default::Symbol: default session name, i.e. the session that will be used when no session name is provided;

  • preferred_format::Symbol: preferred format to send data to gnuplot. Value must be one of:

    • bin: provides best performances for large datasets, but uses temporary files;
    • text: may be slow for large datasets, but no temporary file is involved;
    • auto (default) automatically choose the best strategy.
+GNUPLOT (default) set term wxt 0 enhanced

Each line reports the package name (GNUPLOT), the session name (default), the command or string being sent to gnuplot process, and the returned response (line starting with ->). Default value is false;

  • cmd::String: command to start the gnuplot process, default value is "gnuplot". If you need to specify a custom path to the gnuplot executable you may change this value;

  • default::Symbol: default session name, i.e. the session that will be used when no session name is provided;

  • preferred_format::Symbol: preferred format to send data to gnuplot. Value must be one of:

    • bin: provides best performances for large datasets, but uses temporary files;
    • text: may be slow for large datasets, but no temporary file is involved;
    • auto (default) automatically choose the best strategy.
diff --git a/dev/api/index.html b/dev/api/index.html index e0b1386..ce4cfe3 100644 --- a/dev/api/index.html +++ b/dev/api/index.html @@ -1,29 +1,29 @@ -API · Gnuplot.jl

API

Index

Exported symbols

The list of Gnuplot.jl exported symbols is as follows:

Gnuplot.@gpMacro
@gp args...

The @gp macro, and its companion @gsp for 3D plots, allows to send data and commands to the gnuplot using an extremely concise syntax. The macros accepts any number of arguments, with the following meaning:

  • one, or a group of consecutive, array(s) build up a dataset. The different arrays are accessible as columns 1, 2, etc. from the gnuplot process. The number of required input arrays depends on the chosen plot style (see gnuplot documentation);

  • a string occurring before a dataset is interpreted as a gnuplot command (e.g. set grid);

  • a string occurring immediately after a dataset is interpreted as a plot element for the dataset, by which you can specify using clause, with clause, line styles, etc.. All keywords may be abbreviated following gnuplot conventions. Moreover, "plot" and "splot" can be abbreviated to "p" and "s" respectively;

  • the special symbol :-, whose meaning is to avoid starting a new plot (if given as first argument), or to avoid immediately running all commands to create the final plot (if given as last argument). Its purpose is to allow splitting one long statement into multiple (shorter) ones;

  • any other symbol is interpreted as a session ID;

  • an Int (>= 1) is interpreted as the plot destination in a multi-plot session (this specification applies to subsequent arguments, not previous ones);

  • an input in the form "\$name"=>(array1, array2, etc...) is interpreted as a named dataset. Note that the dataset name must always start with a "$";

  • an input in the form keyword=value is interpreted as a keyword/value pair. The accepted keywords and their corresponding gnuplot commands are as follows:

    • xrange=[low, high] => "set xrange [low:high];
    • yrange=[low, high] => "set yrange [low:high];
    • zrange=[low, high] => "set zrange [low:high];
    • cbrange=[low, high]=> "set cbrange[low:high];
    • key="..." => "set key ...";
    • title="..." => "set title "..."";
    • xlabel="..." => "set xlabel "..."";
    • ylabel="..." => "set ylabel "..."";
    • zlabel="..." => "set zlabel "..."";
    • xlog=true => set logscale x;
    • ylog=true => set logscale y;
    • zlog=true => set logscale z.

All Keyword names can be abbreviated as long as the resulting name is unambiguous. E.g. you can use xr=[1,10] in place of xrange=[1,10].

source
Gnuplot.@gspMacro
@gsp args...

This macro accepts the same syntax as @gp, but produces a 3D plot instead of a 2D one.

source
Gnuplot.contourlinesFunction
contourlines(x::Vector{Float64}, y::Vector{Float64}, h::Matrix{Float64}; cntrparam="level auto 10")

Compute paths of contour lines for 2D data, and return a vector of IsoContourLines object.

Arguments:

  • x, y: Coordinates;
  • h: the levels on which iso contour lines are to be calculated
  • cntrparam: settings to compute contour line paths (see gnuplot documentation for cntrparam).

Example

x = randn(5000);
+API · Gnuplot.jl

API

Index

Exported symbols

The list of Gnuplot.jl exported symbols is as follows:

Gnuplot.@gpMacro
@gp args...

The @gp macro, and its companion @gsp for 3D plots, allows to send data and commands to the gnuplot using an extremely concise syntax. The macros accepts any number of arguments, with the following meaning:

  • one, or a group of consecutive, array(s) build up a dataset. The different arrays are accessible as columns 1, 2, etc. from the gnuplot process. The number of required input arrays depends on the chosen plot style (see gnuplot documentation);

  • a string occurring before a dataset is interpreted as a gnuplot command (e.g. set grid);

  • a string occurring immediately after a dataset is interpreted as a plot element for the dataset, by which you can specify using clause, with clause, line styles, etc.. All keywords may be abbreviated following gnuplot conventions. Moreover, "plot" and "splot" can be abbreviated to "p" and "s" respectively;

  • the special symbol :-, whose meaning is to avoid starting a new plot (if given as first argument), or to avoid immediately running all commands to create the final plot (if given as last argument). Its purpose is to allow splitting one long statement into multiple (shorter) ones;

  • any other symbol is interpreted as a session ID;

  • an Int (>= 1) is interpreted as the plot destination in a multi-plot session (this specification applies to subsequent arguments, not previous ones);

  • an input in the form "\$name"=>(array1, array2, etc...) is interpreted as a named dataset. Note that the dataset name must always start with a "$";

  • an input in the form keyword=value is interpreted as a keyword/value pair. The accepted keywords and their corresponding gnuplot commands are as follows:

    • xrange=[low, high] => "set xrange [low:high];
    • yrange=[low, high] => "set yrange [low:high];
    • zrange=[low, high] => "set zrange [low:high];
    • cbrange=[low, high]=> "set cbrange[low:high];
    • key="..." => "set key ...";
    • title="..." => "set title "..."";
    • xlabel="..." => "set xlabel "..."";
    • ylabel="..." => "set ylabel "..."";
    • zlabel="..." => "set zlabel "..."";
    • xlog=true => set logscale x;
    • ylog=true => set logscale y;
    • zlog=true => set logscale z.

All Keyword names can be abbreviated as long as the resulting name is unambiguous. E.g. you can use xr=[1,10] in place of xrange=[1,10].

source
Gnuplot.@gspMacro
@gsp args...

This macro accepts the same syntax as @gp, but produces a 3D plot instead of a 2D one.

source
Gnuplot.contourlinesFunction
contourlines(x::Vector{Float64}, y::Vector{Float64}, h::Matrix{Float64}; cntrparam="level auto 10")

Compute paths of contour lines for 2D data, and return a vector of IsoContourLines object.

Arguments:

  • x, y: Coordinates;
  • h: the levels on which iso contour lines are to be calculated
  • cntrparam: settings to compute contour line paths (see gnuplot documentation for cntrparam).

Example

x = randn(5000);
 y = randn(5000);
 h = hist(x, y, nbins1=20, nbins2=20);
 clines = contourlines(h.bins1, h.bins2, h.counts, cntrparam="levels discrete 15, 30, 45");
 @gp "set size ratio -1"
 for i in 1:length(clines)
     @gp :- clines[i].data "w l t '$(clines[i].z)' dt $i"
-end
source
Gnuplot.dataset_namesFunction
dataset_names(sid::Symbol)
-dataset_names()

Return a vector with all dataset names for the sid session. If sid is not provided the default session is considered.

source
Gnuplot.dataset_namesFunction
dataset_names(sid::Symbol)
+dataset_names()

Return a vector with all dataset names for the sid session. If sid is not provided the default session is considered.

source
Gnuplot.gpexecFunction
gpexec(sid::Symbol, command::String)
 gpexec(command::String)

Execute the gnuplot command command on the underlying gnuplot process of the sid session, and return the results as a Vector{String}. If a gnuplot error arises it is propagated as an ErrorException.

The the sid argument is not provided, the default session is considered.

Examples:

gpexec("print GPVAL_TERM")
-gpexec("plot sin(x)")
source
Gnuplot.histFunction
hist(v::Vector{T}; range=extrema(v), bs=NaN, nbins=0, pad=true) where T <: Number

Calculates the histogram of the values in v and returns a Histogram1D structure.

Arguments

  • v: a vector of values to compute the histogra;
  • range: values of the left edge of the first bin and of the right edge of the last bin;
  • bs: size of histogram bins;
  • nbins: number of bins in the histogram;
  • pad: if true add one dummy bins with zero counts before the first bin and after the last.

If bs is given nbins is ignored.

Example

v = randn(1000)
+gpexec("plot sin(x)")
source
Gnuplot.histFunction
hist(v::Vector{T}; range=extrema(v), bs=NaN, nbins=0, pad=true) where T <: Number

Calculates the histogram of the values in v and returns a Histogram1D structure.

Arguments

  • v: a vector of values to compute the histogra;
  • range: values of the left edge of the first bin and of the right edge of the last bin;
  • bs: size of histogram bins;
  • nbins: number of bins in the histogram;
  • pad: if true add one dummy bins with zero counts before the first bin and after the last.

If bs is given nbins is ignored.

Example

v = randn(1000)
 h = hist(v, bs=0.5)
 @gp h  # preview
-@gp h.bins h.counts "w histep notit"
source
hist(v1::Vector{T1 <: Number}, v2::Vector{T2 <: Number}; range1=[NaN,NaN], bs1=NaN, nbins1=0, range2=[NaN,NaN], bs2=NaN, nbins2=0)

Calculates the 2D histogram of the values in v1 and v2 and returns a Histogram2D structure.

Arguments

  • v1: a vector of values along the first dimension;
  • v2: a vector of values along the second dimension;
  • range1: values of the left edge of the first bin and of the right edge of the last bin, along the first dimension;
  • range1: values of the left edge of the first bin and of the right edge of the last bin, along the second dimension;
  • bs1: size of histogram bins along the first dimension;
  • bs2: size of histogram bins along the second dimension;
  • nbins1: number of bins along the first dimension;
  • nbins2: number of bins along the second dimension;

If bs1 (bs2) is given nbins1 (nbins2) is ignored.

Example

v1 = randn(1000)
+@gp h.bins h.counts "w histep notit"
source
hist(v1::Vector{T1 <: Number}, v2::Vector{T2 <: Number}; range1=[NaN,NaN], bs1=NaN, nbins1=0, range2=[NaN,NaN], bs2=NaN, nbins2=0)

Calculates the 2D histogram of the values in v1 and v2 and returns a Histogram2D structure.

Arguments

  • v1: a vector of values along the first dimension;
  • v2: a vector of values along the second dimension;
  • range1: values of the left edge of the first bin and of the right edge of the last bin, along the first dimension;
  • range1: values of the left edge of the first bin and of the right edge of the last bin, along the second dimension;
  • bs1: size of histogram bins along the first dimension;
  • bs2: size of histogram bins along the second dimension;
  • nbins1: number of bins along the first dimension;
  • nbins2: number of bins along the second dimension;

If bs1 (bs2) is given nbins1 (nbins2) is ignored.

Example

v1 = randn(1000)
 v2 = randn(1000)
 h = hist(v1, v2, bs1=0.5, bs2=0.5)
 @gp h  # preview
-@gp "set size ratio -1" "set auto fix" h.bins1 h.bins2 h.counts "w image notit"
source
Gnuplot.linetypesFunction
linetypes(cmap::ColorScheme; rev=false)
-linetypes(s::Symbol; rev=false)

Convert a ColorScheme object into a string containing the gnuplot commands to set up linetype colors.

If the argument is a Symbol it is interpreted as the name of one of the predefined schemes in ColorSchemes. If rev=true the line colors are reversed.

source
Gnuplot.paletteFunction
palette(cmap::ColorScheme; rev=false)
-palette(s::Symbol; rev=false)

Convert a ColorScheme object into a string containing the gnuplot commands to set up the corresponding palette.

If the argument is a Symbol it is interpreted as the name of one of the predefined schemes in ColorSchemes. If rev=true the palette is reversed.

source
Gnuplot.saveFunction
save(sid::Symbol; term="", output="")
+@gp "set size ratio -1" "set auto fix" h.bins1 h.bins2 h.counts "w image notit"
source
Gnuplot.linetypesFunction
linetypes(cmap::ColorScheme; rev=false)
+linetypes(s::Symbol; rev=false)

Convert a ColorScheme object into a string containing the gnuplot commands to set up linetype colors.

If the argument is a Symbol it is interpreted as the name of one of the predefined schemes in ColorSchemes. If rev=true the line colors are reversed.

source
Gnuplot.paletteFunction
palette(cmap::ColorScheme; rev=false)
+palette(s::Symbol; rev=false)

Convert a ColorScheme object into a string containing the gnuplot commands to set up the corresponding palette.

If the argument is a Symbol it is interpreted as the name of one of the predefined schemes in ColorSchemes. If rev=true the palette is reversed.

source
Gnuplot.saveFunction
save(sid::Symbol; term="", output="")
 save(sid::Symbol, script_filename::String, ;term="", output="")
 save(; term="", output="")
-save(script_filename::String ;term="", output="")

Export a (multi-)plot into the external file name provided in the output= keyword. The gnuplot terminal to use is provided through the term= keyword.

If the script_filename argument is provided a gnuplot script will be written in place of the output image. The latter can then be used in a pure gnuplot session (Julia is no longer needed) to generate exactly the same original plot.

If the sid argument is provided the operation applies to the corresponding session.

source
Gnuplot.statsFunction
stats(sid::Symbol,name::String)
+save(script_filename::String ;term="", output="")

Export a (multi-)plot into the external file name provided in the output= keyword. The gnuplot terminal to use is provided through the term= keyword.

If the script_filename argument is provided a gnuplot script will be written in place of the output image. The latter can then be used in a pure gnuplot session (Julia is no longer needed) to generate exactly the same original plot.

If the sid argument is provided the operation applies to the corresponding session.

source
Gnuplot.statsFunction
stats(sid::Symbol,name::String)
 stats(name::String)
 stats(sid::Symbol)
-stats()

Print a statistical summary for the name dataset, belonging to sid session. If name is not provdied a summary is printed for each dataset in the session. If sid is not provided the default session is considered.

This function is actually a wrapper for the gnuplot command stats.

source
Gnuplot.terminalsFunction
terminals()

Return a Vector{String} with the names of all the available gnuplot terminals.

source
Gnuplot.terminalFunction
terminal(sid::Symbol)
-terminal()

Return a String with the current gnuplot terminal (and its options) of the process associated to session sid, or to the default session (if sid is not provided).

source
Gnuplot.test_terminalFunction
test_terminal(term=nothing; linetypes=nothing, palette=nothing)

Run the test and test palette commands on a gnuplot terminal.

If no term is given it will use the default terminal. If lt and pal are given they are used as input to the linetypes and palette function repsetcively to load the associated color scheme.

Examples

test_terminal()
-test_terminal("wxt", lt=:rust, pal=:viridis)
source

Non-exported symbols

The following functions are not exported by the Gnuplot.jl package since they are typically not used in every day work, or aimed to debugging purposes. Still, they can be useful in some case, hence they are documented here.

In order to call these functions you should add the Gnuplot. prefix to the function name.

Gnuplot.Histogram1DType
Histogram1D

A 1D histogram data.

Fields

  • bins::Vector{Float64}: bin center values;
  • counts::Vector{Float64}: counts in the bins;
  • binsize::Float64: size of each bin;
source
Gnuplot.Histogram2DType
Histogram2D

A 2D histogram data.

Fields

  • bins1::Vector{Float64}: bin center values along first dimension;
  • bins2::Vector{Float64}: bin center values along second dimension;
  • counts::Vector{Float64}: counts in the bins;
  • binsize1::Float64: size of each bin along first dimension;
  • binsize2::Float64: size of each bin along second dimension;
source
Gnuplot.IsoContourLinesType
IsoContourLines

Coordinates of all contour lines of a given level.

Fields

  • paths::Vector{Path2d}: vector of Path2d objects, one for each continuous path;
  • data::Vector{String}: vector with string representation of all paths (ready to be sent to gnuplot);
  • z::Float64: level of the contour lines.
source
Gnuplot.OptionsType
Options

Structure containing the package global options, accessible through Gnuplot.options.

Fields

  • dry::Bool: whether to use dry sessions, i.e. without an underlying Gnuplot process (default: false)
  • cmd::String: command to start the Gnuplot process (default: "gnuplot")
  • default::Symbol: default session name (default: :default)
  • init::Vector{String}: commands to initialize the gnuplot session (e.g., to set default terminal)
  • verbose::Bool: verbosity flag (default: false)
  • preferred_format::Symbol: preferred format to send data to gnuplot. Value must be one of:
    • bin: fastest solution for large datasets, but uses temporary files;
    • text: may be slow for large datasets, but no temporary file is involved;
    • auto (default) automatically choose the best strategy.
source
Gnuplot.gpversionFunction
Gnuplot.gpversion()

Return the gnuplot application version.

Raise an error if version is < 5.0 (required to use data blocks).

source
Gnuplot.quitFunction
Gnuplot.quit(sid::Symbol)

Quit the session identified by sid and the associated gnuplot process (if any).

source
Gnuplot.quitallFunction
Gnuplot.quitall()

Quit all the sessions and the associated gnuplot processes.

source
+stats()

Print a statistical summary for the name dataset, belonging to sid session. If name is not provdied a summary is printed for each dataset in the session. If sid is not provided the default session is considered.

This function is actually a wrapper for the gnuplot command stats.

source
Gnuplot.terminalsFunction
terminals()

Return a Vector{String} with the names of all the available gnuplot terminals.

source
Gnuplot.terminalFunction
terminal(sid::Symbol)
+terminal()

Return a String with the current gnuplot terminal (and its options) of the process associated to session sid, or to the default session (if sid is not provided).

source
Gnuplot.test_terminalFunction
test_terminal(term=nothing; linetypes=nothing, palette=nothing)

Run the test and test palette commands on a gnuplot terminal.

If no term is given it will use the default terminal. If lt and pal are given they are used as input to the linetypes and palette function repsetcively to load the associated color scheme.

Examples

test_terminal()
+test_terminal("wxt", lt=:rust, pal=:viridis)
source

Non-exported symbols

The following functions are not exported by the Gnuplot.jl package since they are typically not used in every day work, or aimed to debugging purposes. Still, they can be useful in some case, hence they are documented here.

In order to call these functions you should add the Gnuplot. prefix to the function name.

Gnuplot.Histogram1DType
Histogram1D

A 1D histogram data.

Fields

  • bins::Vector{Float64}: bin center values;
  • counts::Vector{Float64}: counts in the bins;
  • binsize::Float64: size of each bin;
source
Gnuplot.Histogram2DType
Histogram2D

A 2D histogram data.

Fields

  • bins1::Vector{Float64}: bin center values along first dimension;
  • bins2::Vector{Float64}: bin center values along second dimension;
  • counts::Vector{Float64}: counts in the bins;
  • binsize1::Float64: size of each bin along first dimension;
  • binsize2::Float64: size of each bin along second dimension;
source
Gnuplot.IsoContourLinesType
IsoContourLines

Coordinates of all contour lines of a given level.

Fields

  • paths::Vector{Path2d}: vector of Path2d objects, one for each continuous path;
  • data::Vector{String}: vector with string representation of all paths (ready to be sent to gnuplot);
  • z::Float64: level of the contour lines.
source
Gnuplot.OptionsType
Options

Structure containing the package global options, accessible through Gnuplot.options.

Fields

  • dry::Bool: whether to use dry sessions, i.e. without an underlying Gnuplot process (default: false)
  • cmd::String: command to start the Gnuplot process (default: "gnuplot")
  • default::Symbol: default session name (default: :default)
  • init::Vector{String}: commands to initialize the gnuplot session (e.g., to set default terminal)
  • verbose::Bool: verbosity flag (default: false)
  • preferred_format::Symbol: preferred format to send data to gnuplot. Value must be one of:
    • bin: fastest solution for large datasets, but uses temporary files;
    • text: may be slow for large datasets, but no temporary file is involved;
    • auto (default) automatically choose the best strategy.
source
Gnuplot.gpversionFunction
Gnuplot.gpversion()

Return the gnuplot application version.

Raise an error if version is < 5.0 (required to use data blocks).

source
Gnuplot.quitFunction
Gnuplot.quit(sid::Symbol)

Quit the session identified by sid and the associated gnuplot process (if any).

source
Gnuplot.quitallFunction
Gnuplot.quitall()

Quit all the sessions and the associated gnuplot processes.

source
diff --git a/dev/assets/ex007a.png b/dev/assets/ex007a.png index 063fb5d47b608f52c1030156922b2d0bbd291d92..bb3cbe30f6725f638ba2d359241f0667a0dd79ef 100644 GIT binary patch literal 16805 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 C!%n9F diff --git a/dev/assets/ex011.png b/dev/assets/ex011.png index 149585f1092ff6c3d9a14b46013b7c40b5bb5041..b750cadb39d45785aa13220369d7bcc67f10dd94 100644 GIT binary patch literal 20912 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 literal 18600 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 literal 10002 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 Jk%=;X_+Llkj?w@C diff --git a/dev/assets/ex014a.png b/dev/assets/ex014a.png index 65c95bf2a43012feccb2bd8ff306625d6143ac57..7beeedb4c61c91de444568cc6a082c8b1ad073d3 100644 GIT binary patch literal 11130 zcmaia2RN7i_x>YAvO;B(Q9@Q`WJL)fWMoT5_R3!IG0G~kGt1txcVy4(t?Vs(h2MFr z@AzH+|8@PIuGahQS+CbQ_qp%;oHtKoC2%j1T|y89SMrg#0)n9ZfZs+J&%q~%QjIL_-}*m3Bos^_CnJk0iY8#67T zva(5gM2Lq#qD1$k+tKP*FU*MB&uHx>5ah*mbCKnp!-K7P_stdt&2roK6>JD{=d%6M zk1!Q2Qci>R=J#~imoBXx8c0Y;czxCJ(n71Hq^ZQ(GNRMjBWc#*NEt7V@WP@ znpj79&g0OuPvm3H=jhvvWns~#3Km%@Ij;8_T@<7%k`=~ zt@Vkj*)=l6Bk&?w_ttz@@S8UrRMdQy2}w!MH)mSR&CNG=FCp#hsyv<;ZCGU8bP_=n zcdb8flvY;@F)++W8OFUYkwy@nn?@of+*VWH62*L5$FY%8@{ezR$b9FJO`Yf^eZh{- zfb}zHM7_akI^#iqtdq`F-{cjY^SFqe=#S$0}-;E3l@O&|CLzlgI!6JfaZaZp2Fu)FL@t9M0MdJE{{|Vn#kc4#Ix=q8N&B6 ztOA`9?;IJj|1R&X7w>snUwz_Hs-5e^>O4&e-aF(ySiJA*g7nAEE@e8@MJY>o4)&SO z2>BsaCwYGY_P!QNmT>dW%|qUu-TXD~QJI(sx<{$o!ED6lrZq2biQDnv-Mh!pDp#*w zO_hzkQ`OYfm8)IjmXbQ(8Jn4v)n{A;t5>|nYH<;D<*BO8qc;q3w{G3~wYiy*k)d$w zih%u^%a7NXenwq!g8sy8c(}OS)n-e5>1@^ev;;-P#X@^yHl(DaqN1V?9z2kgl#~

$P6u{9GEU|dswny$w=!N~ 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
0|AIXYy3bKss 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 diff --git a/dev/assets/ex014c.png b/dev/assets/ex014c.png index 0b77f716fb7ab1845a3efa3f703b2fdffc97d86b..51df5fdd94beacf25bceed1ff560cab67f941e93 100644 GIT binary patch literal 13309 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 literal 13268 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 J`BH|y{{s*Dy%zug diff --git a/dev/assets/ex014d.png b/dev/assets/ex014d.png index cb8a68c2ce0ec591e920e8e91d95ea052d9e3ed8..1b33be9c23652c9fb7c5dde578b165155c34638a 100644 GIT binary patch literal 38968 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

8ESvlRssITS41|CA+R@+X zlngJCG6mhBTxi@QVD$DpO3twBY;XW03Y|qXDJtMQHq~qI*2ATXh&q) zxp^iusDe@afjBUgr5lrtcNtlmG-+%JTqV|O7o_?~n$yB2l-{b{j$Q-j-r zs|{ZD@rw}PPtJ-u&0dnK*~_P&WWEVwbdxI6puE2c@O=fOMwB$Gd?js3HV5VmEFfWy z>=S;)7xF$S?vW7>BO|)Sv84L@dE|jj?w$(}sAL-bD+0)&mG(9FlOvfUWOxF|S7Vm$ z0F(F%O67E!1sWubdb)sDxmFjj zyW}qJb}$g%S0xxJt*f8j+UeIVkdsYrDj@ENNPYs=sVmuWA*4X8b$h%&B5MQ&m!)*a z^H~`xzA`d_!6(J3cp{toChv^Gszb45#yS)9@a11M^OWH0kM41ic{FE4Pmz5I1_X~@ zkTOzjF4T>XPb0taD5m9{>XxXde-M&uER?_@-C#ElyvL$O!T#M~pI1^?%CN^uVMxz! zAmKrYfPvKD{>#v>k|&kF58 z!qYyDP;}E`UxF7X)1ngAB@C2PkvEq0b&fM+gke2jGxmD7V*w<(AqRWqiu&?P!vkYF!MdWqFiZG=v)^&Vt z>YTpb;I)6xc2WunK|E`3t}rJQLFvERI7>*2 zFcxI0NhCWpAvuuy! zjGAH=F1EtURu_wF%juJAyK-`cObdUUvLdLvRr8J{I%fi6fQoefuWoJA7!b_MBsn%& z2~W{|ig?hH@jL!=`FYT1U_XnT?6cDa^h8Pvr1S|A_t_!ig)6f8=f~=Y{z=1)XGk!% z4l$xnIKPGPK&Y6Bty*|_KvRlA$Gpy)CD|U~X<|?cX$!I=W3!xJdt|RspZbU6GHHI+NBDm< zj)fOAa)$kfkOKwW%J}|SfXJLQQ2$5S}g*s=8WVj!P!dO;Ld

ovFRkpRAngpaEIRI}Fc0 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 F{tv=XcBTLT literal 39614 zcmZsCWmp|e(B*~T5Ih73?(XjHPH+uQa0%|NL4&)yySoH;cXxN&$@}f@vp;qi;Njk( zZ&!C$)v2mep$c;1pW(3KKp@a(NeK}p5D07&_%?$92VMcGbUFh+p$w$OML-|_zOvd2 z<3Jz+kfeybX4k zBbt9Q9)v@e`|ehQ)ry#6ybM`*L&w}dl@|>w)^QRf4*R2_ z5fQJw`0tyv{9dn3s-@}dHoA_EwgtQvdn13O_D1MC zc^+f<&o<>{%utOuQ!r$%gnO2kHS?8R4=1w=Gu%pQYaOaQMiOY<+PyB;+tEdNuZM`g z((CfLUhh`5zr9^}d%r&&Or&#vMM1gR3dXlyYpJiUW~8B^!8Gk*l`B-HKnM3(In!-- zyZifx+WVn(qx)_F(RstOQMdAAJDmPI)fdq1!vi%sTuOnmvNFEcQwY-;qYE~Hz{{E`xarOFigB@8=Q)A!l2T3lMrru@jjfn+%)8NUr=^nZSdKB(-)c|%JIty`-TXAm8TIW#$n85K?`{9ydZ?(W+bgkxj*gE@Dk`8r|D?biWg$X` zTt0FH_fe<0@Av`(K_ck}9~}630OTV=goVXC^l4=<`;T%Db!FSXsX012^4u>Pt}})S z)CvE@1Dj9=E9#(Ex`FZTv1ChKIm_VperMnC_yp2wwDvsA4*vW1uUH0w(9oHaJ9J>% z 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 diff --git a/dev/basic/index.html b/dev/basic/index.html index 30f8086..697750f 100644 --- a/dev/basic/index.html +++ b/dev/basic/index.html @@ -1,5 +1,5 @@ -Basic usage · Gnuplot.jl

Basic usage

The main purpose of the Gnuplot.jl package is to send data and commands to the underlying gnuplot process, in order to generate plots. Unlike other packages, however, the actual commands to plot, or the plot attributes, are not specified through function calls. This is what makes Gnuplot.jl easy to learn and use: there are no functions or keywords names to memorize[1].

The most important symbols exported by the package are the @gp (for 2D plots) and @gsp (for 3D plots) macros, both accepting any number of arguments, and whose meaning is interpreted as follows:

  • one, or a group of consecutive, array(s) build up a dataset. The different arrays are accessible as columns 1, 2, etc. from the gnuplot process. The number of required input arrays depends on the chosen plot style (see gnuplot documentation);

  • a string occurring before a dataset is interpreted as a gnuplot command (e.g. set grid);

  • a string occurring immediately after a dataset is interpreted as a plot element for the dataset, by which you can specify using clause, with clause, line styles, etc.;

  • the special symbol :-, whose meaning is to avoid starting a new plot (if given as first argument), or to avoid immediately running all commands to create the final plot (if given as last argument). Its purpose is to allow splitting one long statement into multiple (shorter) ones.

The above list shows all the fundamental concepts to follow the examples presented below. The @gp and @gsp macros also accepts further arguments, but their use will be discussed in Advanced usage.

2D plots

Here we will show a few examples to generate 2D plots. The examples are intentionally very simple to highlight the behavior of Gnuplot.jl. See Examples for more complex ones.

Remember to run:

using Gnuplot

before running the examples.

Simple examples involving just gnuplot commands:


Plot a sinusoid:

@gp "plot sin(x)"


Plot two curves:

@gp "set key left" "plot sin(x)" "pl cos(x)"

Note

Note that all gnuplot commands can be abbreviated as long as the resulting string is not ambiguous. In the example above we used pl in place of plot.


Split a @gp call in three statements:

@gp    "set grid"  :-
+Basic usage · Gnuplot.jl

Basic usage

The main purpose of the Gnuplot.jl package is to send data and commands to the underlying gnuplot process, in order to generate plots. Unlike other packages, however, the actual commands to plot, or the plot attributes, are not specified through function calls. This is what makes Gnuplot.jl easy to learn and use: there are no functions or keywords names to memorize[1].

The most important symbols exported by the package are the @gp (for 2D plots) and @gsp (for 3D plots) macros, both accepting any number of arguments, and whose meaning is interpreted as follows:

  • one, or a group of consecutive, array(s) build up a dataset. The different arrays are accessible as columns 1, 2, etc. from the gnuplot process. The number of required input arrays depends on the chosen plot style (see gnuplot documentation);

  • a string occurring before a dataset is interpreted as a gnuplot command (e.g. set grid);

  • a string occurring immediately after a dataset is interpreted as a plot element for the dataset, by which you can specify using clause, with clause, line styles, etc.;

  • the special symbol :-, whose meaning is to avoid starting a new plot (if given as first argument), or to avoid immediately running all commands to create the final plot (if given as last argument). Its purpose is to allow splitting one long statement into multiple (shorter) ones.

The above list shows all the fundamental concepts to follow the examples presented below. The @gp and @gsp macros also accepts further arguments, but their use will be discussed in Advanced usage.

2D plots

Here we will show a few examples to generate 2D plots. The examples are intentionally very simple to highlight the behavior of Gnuplot.jl. See Examples for more complex ones.

Remember to run:

using Gnuplot

before running the examples.

Simple examples involving just gnuplot commands:


Plot a sinusoid:

@gp "plot sin(x)"


Plot two curves:

@gp "set key left" "plot sin(x)" "pl cos(x)"

Note

Note that all gnuplot commands can be abbreviated as long as the resulting string is not ambiguous. In the example above we used pl in place of plot.


Split a @gp call in three statements:

@gp    "set grid"  :-
 @gp :- "p sin(x)"  :-
 @gp :- "plo cos(x)"

Send data from Julia to gnuplot:

Plot a parabola

@gp (1:20).^2


Plot a parabola with scaled x axis, lines and legend

x = 1:20
 @gp "set key left"   x ./ 20   x.^2   "with lines tit 'Parabola'"


Multiple datasets, logarithmic axis, labels and colors, etc.

x = 1:0.1:10
@@ -87,4 +87,4 @@ set size square
 set autoscale fix
 plot  \
    './script2_data/jl_vH8X4k' binary array=(512, 768) rotate=-90deg with rgbimage notit
-set output

The above scripts can be loaded into a pure gnuplot session (Julia is no longer needed) as follows:

gunplot> load 'script1.gp'

to generate a plot identical to the original one.

The purpose of gnuplot scripts is to allow sharing all data, alongside a plot, in order to foster collaboration among scientists and replicability of results. Moreover, a script can be used at any time to change the details of a plot, without the need to re-run the Julia code used to generate it the first time.

Finally, the scripts are the only possible output when Dry sessions are used (i.e. when gnuplot is not available in the user platform.

  • 1a previous knowledge of gnuplot usage is, nevertheless, required.
+set output

The above scripts can be loaded into a pure gnuplot session (Julia is no longer needed) as follows:

gunplot> load 'script1.gp'

to generate a plot identical to the original one.

The purpose of gnuplot scripts is to allow sharing all data, alongside a plot, in order to foster collaboration among scientists and replicability of results. Moreover, a script can be used at any time to change the details of a plot, without the need to re-run the Julia code used to generate it the first time.

Finally, the scripts are the only possible output when Dry sessions are used (i.e. when gnuplot is not available in the user platform.

  • 1a previous knowledge of gnuplot usage is, nevertheless, required.
diff --git a/dev/examples/index.html b/dev/examples/index.html index 271b6e1..4d1b2d7 100644 --- a/dev/examples/index.html +++ b/dev/examples/index.html @@ -1,2 +1,2 @@ -Examples · Gnuplot.jl

Examples

The official gallery of high quality examples is maintained in a separate repository:

https://lazarusa.github.io/gnuplot-examples/

The examples in this documentation are intentionally very simple, in order to focus on the package functionalities. The only relatively complex, publication-quality plot, is discussed in The cairolatex terminal section.

Keep in mind that Gnuplot.jl is just an interface to gnuplot, so everything you can do with the latter is achievable from Julia. Further gnuplot examples can be found here:

+Examples · Gnuplot.jl

Examples

The official gallery of high quality examples is maintained in a separate repository:

https://lazarusa.github.io/gnuplot-examples/

The examples in this documentation are intentionally very simple, in order to focus on the package functionalities. The only relatively complex, publication-quality plot, is discussed in The cairolatex terminal section.

Keep in mind that Gnuplot.jl is just an interface to gnuplot, so everything you can do with the latter is achievable from Julia. Further gnuplot examples can be found here:

diff --git a/dev/index.html b/dev/index.html index 00c9942..828eaca 100644 --- a/dev/index.html +++ b/dev/index.html @@ -1,2 +1,2 @@ -Home · Gnuplot.jl

Gnuplot.jl

A Julia interface to gnuplot.

The Gnuplot.jl package allows easy and fast use of gnuplot as a data visualization tool in Julia. Have a look at Basic usage and Examples for a quick overview. The package main features are:

  • fast time-to-first-plot (~1 sec);

  • extremely concise yet meaningful syntax, makes it ideal for interactive data exploration;

  • no need to learn new API functions or keywords: only two macros (@gp for 2D plots, @gsp for 3D plots) and a basic knowledge of gnuplot are enough to generate most plots;

  • transparent interface between Julia and gnuplot to exploit all functionalities of the latter, both present and future ones;

  • availability of all the palettes from ColorSchemes;

  • support for multiple plots in one window, multiple plotting windows, as well as ASCII and Sixel plots (to plot directly in a terminal);

  • support for histograms (both 1D and 2D);

  • enhanced support for contour plots;

  • export to a huge number of formats such as pdf, png, $\LaTeX$, svg, etc. (actually all those supported by gnuplot);

  • save sessions into gnuplot scripts enables easy plot reproducibility and modifications.

If you're unfamiliar with gnuplot have a look at:

Yet another plotting package?

A powerful plotting framework is among the most important tool in the toolbox of any modern scientist and engineer. As such, it is hard to find a single package to fit all needs, and many solutions are indeed available in the Julia ecosystem.

Gnuplot.jl package fills the niche of users who needs:

  1. publication-quality plots, by exploiting the capabilities of a widely used tool such as gnuplot, and its many output formats available;
  2. a well-documented framework, by taking advantage of all the gnuplot documentation, tutorials and examples available on the web;
  3. a fast response, by relying on an external program (rather than on a large Julia code base);
  4. an interactive data exploration framework, by exposing a carefully designed, extremely concise and easy to remember syntax (at least for users with minimal gnuplot knowledge);
  5. a procedure to foster plot reproducibility by sharing just the data and commands in the form of gnuplot scripts, rather than the original Julia code.

Unlike other packages Gnuplot.jl is not a pure Julia solution as it depends on an external package to actually generate plots. However, if gnuplot is not available on a given platform, the package could still be used in "dry" mode, and no error for a missing dependency will be raised (see Dry sessions).

The Gnuplot.jl package development follows a minimalistic approach: it is essentially a thin layer to send data and commands to gnuplot. This way all underlying capabilities, both present and future ones, are automatically exposed to Julia user, with no need to implement dedicated wrappers.

The functionalities 1, 2 and 3 listed above are similar to those provided by the Gaston package. Gnuplot.jl also provides features 4 and 5, as well as the minimalistic approach.

Do Gnuplot.jl suits my needs?

Any modern plotting package is able to produce a simple scatter plot, with custom symbols, line styles, colors and axis labels. Indeed, this is exactly the example that is reported in every package documentation (also here: see 2D plots). Still, producing complex and publication-quality plots is not an easy task. As a consequence is also not easy to determine whether a package can cope with the most difficult cases (unless you actually try it out) and a reasonable choice is typically to rely on the size of the user base, the availability of documentation / tutorials, and the possibility to preview complex examples.

Gnuplot.jl aims to be ready for even the most challenging plots by relying on the widely and long lasting used gnuplot application, and by allowing each native feature (both present and future ones) to be immediately available in the Julia language. Moreover, Gnuplot.jl provides a unique syntax specifically aimed to increase productivity while performing interactive data exploration.

Last but not least, have a look at the Gnuplot.jl Examples page.

Notation

In this documentation:

  • Gnuplot.jl refers to the Julia package;
  • gnuplot refers to the gnuplot application.

Table of Contents

+Home · Gnuplot.jl

Gnuplot.jl

A Julia interface to gnuplot.

The Gnuplot.jl package allows easy and fast use of gnuplot as a data visualization tool in Julia. Have a look at Basic usage and Examples for a quick overview. The package main features are:

  • fast time-to-first-plot;

  • extremely concise yet meaningful syntax, makes it ideal for interactive data exploration;

  • no need to learn new API functions or keywords: only two macros (@gp for 2D plots, @gsp for 3D plots) and a basic knowledge of gnuplot are enough to generate most plots;

  • transparent interface between Julia and gnuplot to exploit all functionalities of the latter, both present and future ones;

  • availability of all the palettes from ColorSchemes;

  • support for multiple plots in one window, multiple plotting windows, as well as ASCII and Sixel plots (to plot directly in a terminal);

  • support for histograms (both 1D and 2D);

  • enhanced support for contour plots;

  • export to a huge number of formats such as pdf, png, $\LaTeX$, svg, etc. (actually all those supported by gnuplot);

  • save sessions into gnuplot scripts enables easy plot reproducibility and modifications.

If you're unfamiliar with gnuplot have a look at:

Yet another plotting package?

A powerful plotting framework is among the most important tool in the toolbox of any modern scientist and engineer. As such, it is hard to find a single package to fit all needs, and many solutions are indeed available in the Julia ecosystem.

Gnuplot.jl package fills the niche of users who needs:

  1. publication-quality plots, by exploiting the capabilities of a widely used tool such as gnuplot, and its many output formats available;
  2. a well-documented framework, by taking advantage of all the gnuplot documentation, tutorials and examples available on the web;
  3. a fast response, by relying on an external program (rather than on a large Julia code base);
  4. an interactive data exploration framework, by exposing a carefully designed, extremely concise and easy to remember syntax (at least for users with minimal gnuplot knowledge);
  5. a procedure to foster plot reproducibility by sharing just the data and commands in the form of gnuplot scripts, rather than the original Julia code.

Unlike other packages Gnuplot.jl is not a pure Julia solution as it depends on an external package to actually generate plots. However, if gnuplot is not available on a given platform, the package could still be used in "dry" mode, and no error for a missing dependency will be raised (see Dry sessions).

The Gnuplot.jl package development follows a minimalistic approach: it is essentially a thin layer to send data and commands to gnuplot. This way all underlying capabilities, both present and future ones, are automatically exposed to Julia user, with no need to implement dedicated wrappers.

The functionalities 1, 2 and 3 listed above are similar to those provided by the Gaston package. Gnuplot.jl also provides features 4 and 5, as well as the minimalistic approach.

Do Gnuplot.jl suits my needs?

Any modern plotting package is able to produce a simple scatter plot, with custom symbols, line styles, colors and axis labels. Indeed, this is exactly the example that is reported in every package documentation (also here: see 2D plots). Still, producing complex and publication-quality plots is not an easy task. As a consequence is also not easy to determine whether a package can cope with the most difficult cases (unless you actually try it out) and a reasonable choice is typically to rely on the size of the user base, the availability of documentation / tutorials, and the possibility to preview complex examples.

Gnuplot.jl aims to be ready for even the most challenging plots by relying on the widely and long lasting used gnuplot application, and by allowing each native feature (both present and future ones) to be immediately available in the Julia language. Moreover, Gnuplot.jl provides a unique syntax specifically aimed to increase productivity while performing interactive data exploration.

Last but not least, have a look at the Gnuplot.jl Examples page.

Notation

In this documentation:

  • Gnuplot.jl refers to the Julia package;
  • gnuplot refers to the gnuplot application.

Table of Contents

diff --git a/dev/install/index.html b/dev/install/index.html index 65078ca..cba16c1 100644 --- a/dev/install/index.html +++ b/dev/install/index.html @@ -1,5 +1,5 @@ -Installation · Gnuplot.jl

Installation

Prerequisite

In order to use the Gnuplot.jl package you'll need gnuplot (ver. >= 5.0) installed on your system, and its executable available in your path.

If gnuplot is not available in your platform you can still use Gnuplot.jl in "dry" mode (see Dry sessions). In this case a plot can not be generated, but you may still generate Gnuplot scripts.

Package installation

In the Julia REPL type:

julia> ]add Gnuplot

Then hit backspace key to return to Julia REPL.

Check installation

Check execution and version of the underlying gnuplot process:

julia> using Gnuplot
+Installation · Gnuplot.jl

Installation

Prerequisite

In order to use the Gnuplot.jl package you'll need gnuplot (ver. >= 5.0) installed on your system, and its executable available in your path.

If gnuplot is not available in your platform you can still use Gnuplot.jl in "dry" mode (see Dry sessions). In this case a plot can not be generated, but you may still generate Gnuplot scripts.

Package installation

In the Julia REPL type:

julia> ]add Gnuplot

Then hit backspace key to return to Julia REPL.

Check installation

Check execution and version of the underlying gnuplot process:

julia> using Gnuplot
 
 julia> Gnuplot.gpversion()
-v"5.2.0"

Generate the first plot:

julia> @gp 1:9

Test default terminal capabilities:

test_terminal()
+v"5.2.0"

Generate the first plot:

julia> @gp 1:9

Test default terminal capabilities:

test_terminal()
diff --git a/dev/search/index.html b/dev/search/index.html index 4837810..a2b2f2e 100644 --- a/dev/search/index.html +++ b/dev/search/index.html @@ -1,2 +1,2 @@ -Search · Gnuplot.jl

Loading search...

    +Search · Gnuplot.jl

    Loading search...

      diff --git a/dev/search_index.js b/dev/search_index.js index 0260e3b..c49cfc3 100644 --- a/dev/search_index.js +++ b/dev/search_index.js @@ -1,3 +1,3 @@ var documenterSearchIndex = {"docs": -[{"location":"api/#API-1","page":"API","title":"API","text":"","category":"section"},{"location":"api/#Index-1","page":"API","title":"Index","text":"","category":"section"},{"location":"api/#","page":"API","title":"API","text":"","category":"page"},{"location":"api/#Exported-symbols-1","page":"API","title":"Exported symbols","text":"","category":"section"},{"location":"api/#","page":"API","title":"API","text":"The list of Gnuplot.jl exported symbols is as follows:","category":"page"},{"location":"api/#","page":"API","title":"API","text":"@gp\n@gsp\nboxxyerror\ncontourlines\ndataset_names\ngpexec\nhist\nlinetypes\npalette\npalette_names\nsave\nsession_names\nstats\nterminals\nterminal\ntest_terminal","category":"page"},{"location":"api/#Gnuplot.@gp","page":"API","title":"Gnuplot.@gp","text":"@gp args...\n\nThe @gp macro, and its companion @gsp for 3D plots, allows to send data and commands to the gnuplot using an extremely concise syntax. The macros accepts any number of arguments, with the following meaning:\n\none, or a group of consecutive, array(s) build up a dataset. The different arrays are accessible as columns 1, 2, etc. from the gnuplot process. The number of required input arrays depends on the chosen plot style (see gnuplot documentation);\na string occurring before a dataset is interpreted as a gnuplot command (e.g. set grid);\na string occurring immediately after a dataset is interpreted as a plot element for the dataset, by which you can specify using clause, with clause, line styles, etc.. All keywords may be abbreviated following gnuplot conventions. Moreover, \"plot\" and \"splot\" can be abbreviated to \"p\" and \"s\" respectively;\nthe special symbol :-, whose meaning is to avoid starting a new plot (if given as first argument), or to avoid immediately running all commands to create the final plot (if given as last argument). Its purpose is to allow splitting one long statement into multiple (shorter) ones;\nany other symbol is interpreted as a session ID;\nan Int (>= 1) is interpreted as the plot destination in a multi-plot session (this specification applies to subsequent arguments, not previous ones);\nan input in the form \"\\$name\"=>(array1, array2, etc...) is interpreted as a named dataset. Note that the dataset name must always start with a \"$\";\nan input in the form keyword=value is interpreted as a keyword/value pair. The accepted keywords and their corresponding gnuplot commands are as follows:\nxrange=[low, high] => \"set xrange [low:high];\nyrange=[low, high] => \"set yrange [low:high];\nzrange=[low, high] => \"set zrange [low:high];\ncbrange=[low, high]=> \"set cbrange[low:high];\nkey=\"...\" => \"set key ...\";\ntitle=\"...\" => \"set title \"...\"\";\nxlabel=\"...\" => \"set xlabel \"...\"\";\nylabel=\"...\" => \"set ylabel \"...\"\";\nzlabel=\"...\" => \"set zlabel \"...\"\";\nxlog=true => set logscale x;\nylog=true => set logscale y;\nzlog=true => set logscale z.\n\nAll Keyword names can be abbreviated as long as the resulting name is unambiguous. E.g. you can use xr=[1,10] in place of xrange=[1,10].\n\n\n\n\n\n","category":"macro"},{"location":"api/#Gnuplot.@gsp","page":"API","title":"Gnuplot.@gsp","text":"@gsp args...\n\nThis macro accepts the same syntax as @gp, but produces a 3D plot instead of a 2D one.\n\n\n\n\n\n","category":"macro"},{"location":"api/#Gnuplot.boxxyerror","page":"API","title":"Gnuplot.boxxyerror","text":"boxxyerror(x, y; xmin=NaN, ymin=NaN, xmax=NaN, ymax=NaN, cartesian=false)\n\n\n\n\n\n","category":"function"},{"location":"api/#Gnuplot.contourlines","page":"API","title":"Gnuplot.contourlines","text":"contourlines(x::Vector{Float64}, y::Vector{Float64}, h::Matrix{Float64}; cntrparam=\"level auto 10\")\n\nCompute paths of contour lines for 2D data, and return a vector of IsoContourLines object.\n\nArguments:\n\nx, y: Coordinates;\nh: the levels on which iso contour lines are to be calculated\ncntrparam: settings to compute contour line paths (see gnuplot documentation for cntrparam).\n\nExample\n\nx = randn(5000);\ny = randn(5000);\nh = hist(x, y, nbins1=20, nbins2=20);\nclines = contourlines(h.bins1, h.bins2, h.counts, cntrparam=\"levels discrete 15, 30, 45\");\n@gp \"set size ratio -1\"\nfor i in 1:length(clines)\n @gp :- clines[i].data \"w l t '$(clines[i].z)' dt $i\"\nend\n\n\n\n\n\n","category":"function"},{"location":"api/#Gnuplot.dataset_names","page":"API","title":"Gnuplot.dataset_names","text":"dataset_names(sid::Symbol)\ndataset_names()\n\nReturn a vector with all dataset names for the sid session. If sid is not provided the default session is considered.\n\n\n\n\n\n","category":"function"},{"location":"api/#Gnuplot.gpexec","page":"API","title":"Gnuplot.gpexec","text":"gpexec(sid::Symbol, command::String)\ngpexec(command::String)\n\nExecute the gnuplot command command on the underlying gnuplot process of the sid session, and return the results as a Vector{String}. If a gnuplot error arises it is propagated as an ErrorException.\n\nThe the sid argument is not provided, the default session is considered.\n\nExamples:\n\ngpexec(\"print GPVAL_TERM\")\ngpexec(\"plot sin(x)\")\n\n\n\n\n\n","category":"function"},{"location":"api/#Gnuplot.hist","page":"API","title":"Gnuplot.hist","text":"hist(v::Vector{T}; range=extrema(v), bs=NaN, nbins=0, pad=true) where T <: Number\n\nCalculates the histogram of the values in v and returns a Histogram1D structure.\n\nArguments\n\nv: a vector of values to compute the histogra;\nrange: values of the left edge of the first bin and of the right edge of the last bin;\nbs: size of histogram bins;\nnbins: number of bins in the histogram;\npad: if true add one dummy bins with zero counts before the first bin and after the last.\n\nIf bs is given nbins is ignored.\n\nExample\n\nv = randn(1000)\nh = hist(v, bs=0.5)\n@gp h # preview\n@gp h.bins h.counts \"w histep notit\"\n\n\n\n\n\nhist(v1::Vector{T1 <: Number}, v2::Vector{T2 <: Number}; range1=[NaN,NaN], bs1=NaN, nbins1=0, range2=[NaN,NaN], bs2=NaN, nbins2=0)\n\nCalculates the 2D histogram of the values in v1 and v2 and returns a Histogram2D structure.\n\nArguments\n\nv1: a vector of values along the first dimension;\nv2: a vector of values along the second dimension;\nrange1: values of the left edge of the first bin and of the right edge of the last bin, along the first dimension;\nrange1: values of the left edge of the first bin and of the right edge of the last bin, along the second dimension;\nbs1: size of histogram bins along the first dimension;\nbs2: size of histogram bins along the second dimension;\nnbins1: number of bins along the first dimension;\nnbins2: number of bins along the second dimension;\n\nIf bs1 (bs2) is given nbins1 (nbins2) is ignored.\n\nExample\n\nv1 = randn(1000)\nv2 = randn(1000)\nh = hist(v1, v2, bs1=0.5, bs2=0.5)\n@gp h # preview\n@gp \"set size ratio -1\" \"set auto fix\" h.bins1 h.bins2 h.counts \"w image notit\"\n\n\n\n\n\n","category":"function"},{"location":"api/#Gnuplot.linetypes","page":"API","title":"Gnuplot.linetypes","text":"linetypes(cmap::ColorScheme; rev=false)\nlinetypes(s::Symbol; rev=false)\n\nConvert a ColorScheme object into a string containing the gnuplot commands to set up linetype colors.\n\nIf the argument is a Symbol it is interpreted as the name of one of the predefined schemes in ColorSchemes. If rev=true the line colors are reversed.\n\n\n\n\n\n","category":"function"},{"location":"api/#Gnuplot.palette","page":"API","title":"Gnuplot.palette","text":"palette(cmap::ColorScheme; rev=false)\npalette(s::Symbol; rev=false)\n\nConvert a ColorScheme object into a string containing the gnuplot commands to set up the corresponding palette.\n\nIf the argument is a Symbol it is interpreted as the name of one of the predefined schemes in ColorSchemes. If rev=true the palette is reversed.\n\n\n\n\n\n","category":"function"},{"location":"api/#Gnuplot.palette_names","page":"API","title":"Gnuplot.palette_names","text":"palette_names()\n\nReturn a vector with all available color schemes for the palette and linetypes function.\n\n\n\n\n\n","category":"function"},{"location":"api/#Gnuplot.save","page":"API","title":"Gnuplot.save","text":"save(sid::Symbol; term=\"\", output=\"\")\nsave(sid::Symbol, script_filename::String, ;term=\"\", output=\"\")\nsave(; term=\"\", output=\"\")\nsave(script_filename::String ;term=\"\", output=\"\")\n\nExport a (multi-)plot into the external file name provided in the output= keyword. The gnuplot terminal to use is provided through the term= keyword.\n\nIf the script_filename argument is provided a gnuplot script will be written in place of the output image. The latter can then be used in a pure gnuplot session (Julia is no longer needed) to generate exactly the same original plot.\n\nIf the sid argument is provided the operation applies to the corresponding session.\n\n\n\n\n\n","category":"function"},{"location":"api/#Gnuplot.session_names","page":"API","title":"Gnuplot.session_names","text":"session_names()\n\nReturn a vector with all currently active sessions.\n\n\n\n\n\n","category":"function"},{"location":"api/#Gnuplot.stats","page":"API","title":"Gnuplot.stats","text":"stats(sid::Symbol,name::String)\nstats(name::String)\nstats(sid::Symbol)\nstats()\n\nPrint a statistical summary for the name dataset, belonging to sid session. If name is not provdied a summary is printed for each dataset in the session. If sid is not provided the default session is considered.\n\nThis function is actually a wrapper for the gnuplot command stats.\n\n\n\n\n\n","category":"function"},{"location":"api/#Gnuplot.terminals","page":"API","title":"Gnuplot.terminals","text":"terminals()\n\nReturn a Vector{String} with the names of all the available gnuplot terminals.\n\n\n\n\n\n","category":"function"},{"location":"api/#Gnuplot.terminal","page":"API","title":"Gnuplot.terminal","text":"terminal(sid::Symbol)\nterminal()\n\nReturn a String with the current gnuplot terminal (and its options) of the process associated to session sid, or to the default session (if sid is not provided).\n\n\n\n\n\n","category":"function"},{"location":"api/#Gnuplot.test_terminal","page":"API","title":"Gnuplot.test_terminal","text":"test_terminal(term=nothing; linetypes=nothing, palette=nothing)\n\nRun the test and test palette commands on a gnuplot terminal.\n\nIf no term is given it will use the default terminal. If lt and pal are given they are used as input to the linetypes and palette function repsetcively to load the associated color scheme.\n\nExamples\n\ntest_terminal()\ntest_terminal(\"wxt\", lt=:rust, pal=:viridis)\n\n\n\n\n\n","category":"function"},{"location":"api/#Non-exported-symbols-1","page":"API","title":"Non-exported symbols","text":"","category":"section"},{"location":"api/#","page":"API","title":"API","text":"The following functions are not exported by the Gnuplot.jl package since they are typically not used in every day work, or aimed to debugging purposes. Still, they can be useful in some case, hence they are documented here.","category":"page"},{"location":"api/#","page":"API","title":"API","text":"In order to call these functions you should add the Gnuplot. prefix to the function name.","category":"page"},{"location":"api/#","page":"API","title":"API","text":"Gnuplot.Histogram1D\nGnuplot.Histogram2D\nGnuplot.IsoContourLines\nGnuplot.Options\nGnuplot.Path2d\nGnuplot.gpversion\nGnuplot.quit\nGnuplot.quitall\nGnuplot.version","category":"page"},{"location":"api/#Gnuplot.Histogram1D","page":"API","title":"Gnuplot.Histogram1D","text":"Histogram1D\n\nA 1D histogram data.\n\nFields\n\nbins::Vector{Float64}: bin center values;\ncounts::Vector{Float64}: counts in the bins;\nbinsize::Float64: size of each bin;\n\n\n\n\n\n","category":"type"},{"location":"api/#Gnuplot.Histogram2D","page":"API","title":"Gnuplot.Histogram2D","text":"Histogram2D\n\nA 2D histogram data.\n\nFields\n\nbins1::Vector{Float64}: bin center values along first dimension;\nbins2::Vector{Float64}: bin center values along second dimension;\ncounts::Vector{Float64}: counts in the bins;\nbinsize1::Float64: size of each bin along first dimension;\nbinsize2::Float64: size of each bin along second dimension;\n\n\n\n\n\n","category":"type"},{"location":"api/#Gnuplot.IsoContourLines","page":"API","title":"Gnuplot.IsoContourLines","text":"IsoContourLines\n\nCoordinates of all contour lines of a given level.\n\nFields\n\npaths::Vector{Path2d}: vector of Path2d objects, one for each continuous path;\ndata::Vector{String}: vector with string representation of all paths (ready to be sent to gnuplot);\nz::Float64: level of the contour lines.\n\n\n\n\n\n","category":"type"},{"location":"api/#Gnuplot.Options","page":"API","title":"Gnuplot.Options","text":"Options\n\nStructure containing the package global options, accessible through Gnuplot.options.\n\nFields\n\ndry::Bool: whether to use dry sessions, i.e. without an underlying Gnuplot process (default: false)\ncmd::String: command to start the Gnuplot process (default: \"gnuplot\")\ndefault::Symbol: default session name (default: :default)\ninit::Vector{String}: commands to initialize the gnuplot session (e.g., to set default terminal)\nverbose::Bool: verbosity flag (default: false)\npreferred_format::Symbol: preferred format to send data to gnuplot. Value must be one of:\nbin: fastest solution for large datasets, but uses temporary files;\ntext: may be slow for large datasets, but no temporary file is involved;\nauto (default) automatically choose the best strategy.\n\n\n\n\n\n","category":"type"},{"location":"api/#Gnuplot.Path2d","page":"API","title":"Gnuplot.Path2d","text":"Path2d\n\nA path in 2D.\n\nFields\n\nx::Vector{Float64}\ny::Vector{Float64}\n\n\n\n\n\n","category":"type"},{"location":"api/#Gnuplot.gpversion","page":"API","title":"Gnuplot.gpversion","text":"Gnuplot.gpversion()\n\nReturn the gnuplot application version.\n\nRaise an error if version is < 5.0 (required to use data blocks).\n\n\n\n\n\n","category":"function"},{"location":"api/#Gnuplot.quit","page":"API","title":"Gnuplot.quit","text":"Gnuplot.quit(sid::Symbol)\n\nQuit the session identified by sid and the associated gnuplot process (if any).\n\n\n\n\n\n","category":"function"},{"location":"api/#Gnuplot.quitall","page":"API","title":"Gnuplot.quitall","text":"Gnuplot.quitall()\n\nQuit all the sessions and the associated gnuplot processes.\n\n\n\n\n\n","category":"function"},{"location":"api/#Gnuplot.version","page":"API","title":"Gnuplot.version","text":"Gnuplot.version()\n\nReturn the Gnuplot.jl package version.\n\n\n\n\n\n","category":"function"},{"location":"basic/#Basic-usage-1","page":"Basic usage","title":"Basic usage","text":"","category":"section"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"The main purpose of the Gnuplot.jl package is to send data and commands to the underlying gnuplot process, in order to generate plots. Unlike other packages, however, the actual commands to plot, or the plot attributes, are not specified through function calls. This is what makes Gnuplot.jl easy to learn and use: there are no functions or keywords names to memorize[1].","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"The most important symbols exported by the package are the @gp (for 2D plots) and @gsp (for 3D plots) macros, both accepting any number of arguments, and whose meaning is interpreted as follows:","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"one, or a group of consecutive, array(s) build up a dataset. The different arrays are accessible as columns 1, 2, etc. from the gnuplot process. The number of required input arrays depends on the chosen plot style (see gnuplot documentation);\na string occurring before a dataset is interpreted as a gnuplot command (e.g. set grid);\na string occurring immediately after a dataset is interpreted as a plot element for the dataset, by which you can specify using clause, with clause, line styles, etc.;\nthe special symbol :-, whose meaning is to avoid starting a new plot (if given as first argument), or to avoid immediately running all commands to create the final plot (if given as last argument). Its purpose is to allow splitting one long statement into multiple (shorter) ones.","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"The above list shows all the fundamental concepts to follow the examples presented below. The @gp and @gsp macros also accepts further arguments, but their use will be discussed in Advanced usage.","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"[1]: a previous knowledge of gnuplot usage is, nevertheless, required.","category":"page"},{"location":"basic/#plots2d-1","page":"Basic usage","title":"2D plots","text":"","category":"section"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"Here we will show a few examples to generate 2D plots. The examples are intentionally very simple to highlight the behavior of Gnuplot.jl. See Examples for more complex ones.","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"Remember to run:","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"using Gnuplot","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"before running the examples.","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"using Gnuplot\nGnuplot.quitall()\nmkpath(\"assets\")\nGnuplot.splash(\"assets/logo.png\")\nsaveas(file) = save(term=\"pngcairo size 480,360 fontscale 0.8\", output=\"assets/$(file).png\")\nempty!(Gnuplot.options.init)\ngpexec(\"set term unknown\")","category":"page"},{"location":"basic/#Simple-examples-involving-just-gnuplot-commands:-1","page":"Basic usage","title":"Simple examples involving just gnuplot commands:","text":"","category":"section"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"","category":"page"},{"location":"basic/#Plot-a-sinusoid:-1","page":"Basic usage","title":"Plot a sinusoid:","text":"","category":"section"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"@gp \"plot sin(x)\"\nsaveas(\"ex001\") # hide","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"(Image: )","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"","category":"page"},{"location":"basic/#Plot-two-curves:-1","page":"Basic usage","title":"Plot two curves:","text":"","category":"section"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"@gp \"set key left\" \"plot sin(x)\" \"pl cos(x)\"\nsaveas(\"ex002\") # hide","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"(Image: )","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"note: Note\nNote that all gnuplot commands can be abbreviated as long as the resulting string is not ambiguous. In the example above we used pl in place of plot.","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"","category":"page"},{"location":"basic/#Split-a-@gp-call-in-three-statements:-1","page":"Basic usage","title":"Split a @gp call in three statements:","text":"","category":"section"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"@gp \"set grid\" :-\n@gp :- \"p sin(x)\" :-\n@gp :- \"plo cos(x)\"\nsaveas(\"ex003\") # hide","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"(Image: )","category":"page"},{"location":"basic/#Send-data-from-Julia-to-gnuplot:-1","page":"Basic usage","title":"Send data from Julia to gnuplot:","text":"","category":"section"},{"location":"basic/#Plot-a-parabola-1","page":"Basic usage","title":"Plot a parabola","text":"","category":"section"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"@gp (1:20).^2\nsaveas(\"ex004\") # hide","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"(Image: )","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"","category":"page"},{"location":"basic/#Plot-a-parabola-with-scaled-x-axis,-lines-and-legend-1","page":"Basic usage","title":"Plot a parabola with scaled x axis, lines and legend","text":"","category":"section"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"x = 1:20\n@gp \"set key left\" x ./ 20 x.^2 \"with lines tit 'Parabola'\"\nsaveas(\"ex005\") # hide","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"(Image: )","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"","category":"page"},{"location":"basic/#Multiple-datasets,-logarithmic-axis,-labels-and-colors,-etc.-1","page":"Basic usage","title":"Multiple datasets, logarithmic axis, labels and colors, etc.","text":"","category":"section"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"x = 1:0.1:10\n@gp \"set grid\" \"set key left\" \"set logscale y\"\n@gp :- \"set title 'Plot title'\" \"set label 'X label'\" \"set xrange [0:*]\"\n@gp :- x x.^0.5 \"w l tit 'Pow 0.5' dt 2 lw 2 lc rgb 'red'\"\n@gp :- x x \"w l tit 'Pow 1' dt 1 lw 3 lc rgb 'blue'\"\n@gp :- x x.^2 \"w l tit 'Pow 2' dt 3 lw 2 lc rgb 'purple'\"\nsaveas(\"ex006\") # hide","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"(Image: )","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"note: Note\nThe above example lacks the trailing :- symbol. This means the plot will be updated at each command, adding one curve at a time.","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"","category":"page"},{"location":"basic/#Keywords-for-common-commands-1","page":"Basic usage","title":"Keywords for common commands","text":"","category":"section"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"In order to avoid typing long, and very frequently used gnuplot commands, Gnuplot.jl provides a few keywords which can be used in both @gp and @sgp calls:","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"xrange=[low, high] => \"set xrange [low:high];\nyrange=[low, high] => \"set yrange [low:high];\nzrange=[low, high] => \"set zrange [low:high];\ncbrange=[low, high]=> \"set cbrange[low:high];\nkey=\"...\" => \"set key ...\";\ntitle=\"...\" => \"set title \\\"...\\\"\";\nxlabel=\"...\" => \"set xlabel \\\"...\\\"\";\nylabel=\"...\" => \"set ylabel \\\"...\\\"\";\nzlabel=\"...\" => \"set zlabel \\\"...\\\"\";\nxlog=true => set logscale x;\nylog=true => set logscale y;\nzlog=true => set logscale z;","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"All such keywords can be abbreviated to unambiguous names.","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"By using the above keywords the first lines of the previous example:","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"@gp \"set grid\" \"set key left\" \"set logscale y\"\n@gp :- \"set title 'Plot title'\" \"set label 'X label'\" \"set xrange [0:*]\"","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"can be replaced with a shorter version:","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"@gp \"set grid\" k=\"left\" ylog=true\n@gp :- tit=\"Plot title\" xlab=\"X label\" xr=[0,NaN]","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"where NaN in the xrange keyword means using axis autoscaling.","category":"page"},{"location":"basic/#Plot-images-1","page":"Basic usage","title":"Plot images","text":"","category":"section"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"Gnuplot.jl can also display images, i.e. 2D arrays:","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"img = randn(Float64, 30, 50)\nimg[10,:] .= -5\n@gp img \"w image notit\"\nsaveas(\"ex007a\") # hide","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"(Image: )","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"Note that the first index in the img matrix corresponds to the x coordinate when the image is displayed.","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"If the orientation is not the correct one you may adjust it with the gnuplot rotate= keyword (the following example requires the TestImages package to be installed):","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"using TestImages\nimg = testimage(\"lighthouse\");\n@gp \"set size square\" \"set autoscale fix\" img \"rotate=-90deg with rgbimage notit\"\nsaveas(\"ex007b\") # hide","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"(Image: )","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"To display a gray image use with image in place of with rgbimage, e.g.:","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"img = testimage(\"walkbridge\");\n@gp palette(:lapaz) \"set size square\" \"set autoscale fix\" img \"rotate=-0.5pi with image notit\"\nsaveas(\"ex007c\") # hide","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"(Image: )","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"Note that we used a custom palette (:lapaz, see Palettes and line types) and the rotation angle has been expressed in radians (-0.5pi).","category":"page"},{"location":"basic/#plots3d-1","page":"Basic usage","title":"3D plots","text":"","category":"section"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"3D plots follow the same rules as 2D ones, just replace the @gp macro with @gsp and add the required columns (according to the plotting style).","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"E.g., to plot a spiral increasing in size along the X direction:","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"x = 0:0.1:10pi\n@gsp cbr=[-1,1].*30 x sin.(x) .* x cos.(x) .* x x./20 \"w p pt 7 ps var lc pal\"\nsaveas(\"ex008\") # hide","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"(Image: )","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"Note that the fourth array in the dataset, x./20, is used as by gnuplot as point size (ps var). Also note that all the keywords discussed above can also be used in 3D plots.","category":"page"},{"location":"basic/#Palettes-and-line-types-1","page":"Basic usage","title":"Palettes and line types","text":"","category":"section"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"The Gnuplot.jl package comes with all the ColorSchemes palettes readily available.","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"A gnuplot-compliant palette can be retrieved with palette(), and used as any other command. The previous example may use an alternative palette with:","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"x = 0:0.1:10pi\n@gsp palette(:viridis) cbr=[-1,1].*30 :-\n@gsp :- x sin.(x) .* x cos.(x) .* x x./20 \"w p pt 7 ps var lc pal\"\nsaveas(\"ex008a\") # hide","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"(Image: )","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"The ColorSchemes palettes can also be used to generate line types (actually just line colors), by means of the linetypes() function, e.g.","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"@gp linetypes(:deepsea)\nx = 1:0.1:4pi\nfor i in 1:5\n @gp :- x i.* sin.(x) \"w l notit lw 5\"\nend\nsaveas(\"ex009\") # hide","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"(Image: )","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"The list of all available palette can be retrieved with palette_names():","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"palette_names()","category":"page"},{"location":"basic/#Exporting-plots-to-files-1","page":"Basic usage","title":"Exporting plots to files","text":"","category":"section"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"Gnuplot.jl to export all plots (as well as multiplots, see Multiplot) to an external file using one of the many available gnuplot terminals. To check which terminals are available in your platform type:","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"terminals()","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"(see also terminal() to check your current terminal).","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"Once you choose the proper terminal (i.e. format of the exported file), use the save() function to export. As an example, all the plots in this page have been saved with:","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"save(term=\"pngcairo size 480,360 fontscale 0.8\", output=\"assets/output.png\")","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"Note that you can pass both the terminal name and its options via the term= keyword. See Gnuplot terminals for further info on the terminals.","category":"page"},{"location":"basic/#Gnuplot-scripts-1","page":"Basic usage","title":"Gnuplot scripts","text":"","category":"section"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"Besides exporting plots in a file Gnuplot.jl can also save a script, i.e. a file containing the minimum set of data and commands required to re-create a figure using just gnuplot.","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"To generate a script for one of the example above use:","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"save(\"script.gp\")","category":"page"},{"location":"basic/#","page":"Basic usage","title":"Basic usage","text":"after the plot has been displayed. Note that when images or large datasets are involved, save() may store the data in binary files under a directory named

      Style Guide

      The Gnuplot.jl loose syntax allows to create a plot using very different approaches. While this was one of the initial purposes for the package, it may lead to decreased code readability if not used judiciously.

      Here I will summarize a few, non-mandatory, guidelines which allows to maintain a neat syntax and a high readability:

      1 - Use macros without parentheses and commas:

      The two most important symbols exported by the package (@gp and @gsp) are macros. As such they are supposed to be invoked without parentheses and commas. E.g. use:

      @gp x y "with lines"

      in place of

      @gp(x, y, "with lines")

      If you have very long lines you may split them in multiple statements using the :- symbol, which resembles both hyphenation in natural language and indentation for the plot-producing code:

      @gp    "set grid" :- 
      +@gp :- x y "with lines"

      Note that the trailing :- symbol is not mandatory. If omitted, the plot will be updated at each statement (rather than at the last one).

      2 - Use keywords in place of gnuplot commands:

      As discussed in Keywords for common commands several commonly used gnuplot commands can be replaced with a keyword. E.g. you can use

      @gp ... xrange=[-1,5] ...

      in place of

      @gp ... "set xrange [-1:5]" ...

      This help reducing the number of strings used in the code, as well as the associated interpolating characters ($), and results in a more concise syntax.

      3 - Use abbreviations for commands and keywords:

      Many gnuplot commands, as well as all keywords (see Keywords for common commands, can be abbreviated as long as the abbreviation is unambiguous. E.g., the following code:

      @gp    "set grid" "set key left" "set logscale y"
      +@gp :- "set title 'Plot title'" "set label 'X label'" "set xrange [0:*]"
      +@gp :- x y "with lines"

      can be replaced with a shorter version:

      @gp    "set grid" k="left" ylog=true
      +@gp :- tit="Plot title" xlab="X label" xr=[0,NaN]
      +@gp :- x y "w l"

      Besides being more idiomatic, the possibility to exploit abbreviations is of great importance when performing interactive data exploration.

      Moreover, in many gnuplot examples and documentation it is very common to use abbreviations (i.e. w l in place of with lines) so there is no reason to avoid them in Gnuplot.jl.

      4 - If possible, follow the commands -> data + plot specs order

      The two following examples produce exactly the same plot:

      x = -10.:10
      +@gp    "set grid" "set multiplot layout 2,1" 
      +@gp :- 1 x x.^2 "w l t 'f(x) = x^2"  # first plot
      +@gp :- 2 x x.^3 "w l t 'f(x) = x^3"  # second plot

      and

      @gp    2 x x.^3 "w l t 'f(x) = x^3"  # second plot
      +@gp :- 1 x x.^2 "w l t 'f(x) = x^2"  # first plot
      +@gp :- "set grid" "set multiplot layout 2,1"

      However, the first form appears more logical and easy to follow.

      In analogy with previous example, even on single plot, the following form

      @gp    "set grid"
      +@gp :- x x.^2 "w l t 'f(x) = x^2"

      should be preferred over

      @gp    x x.^2 "w l t 'f(x) = x^2"
      +@gp :- "set grid"

      even if the output is exactly the same.

      5 - Join multiple command strings:

      Instead of specifying several commands as strings

      @gp :- "set key off"  "set auto fix"  "set size square"
      +@gp :- "set offsets graph .05, graph .05, graph .05, graph .05"
      +@gp :- "set border lw 1 lc rgb 'white'"

      join them in a single string using triple quotes and ;

      @gp :- """set key off;  set auto fix;  set size square;
      +          set offsets graph .05, graph .05, graph .05, graph .05;
      +          set border lw 1 lc rgb 'white'; """
      diff --git a/dev/terminals/index.html b/dev/terminals/index.html index 1a9f2ae..9fd61b7 100644 --- a/dev/terminals/index.html +++ b/dev/terminals/index.html @@ -1,5 +1,5 @@ -Gnuplot terminals · Gnuplot.jl

      Gnuplot terminals

      Gnuplot provides dozens of terminals to display plots or export them into files (see terminals() to get a list of enabled terminals on your platform). This section discuss a few tips on how to use the most common terminals.

      To use a specific terminal for interactive use you may either add it as initialization command for all new session with (see Options):

      push!(Gnuplot.options.init, "set term wxt")

      or directly send the command to a specific session (see Direct command execution)

      gpexec("set term wxt")

      See official gnuplot documentation for further info on terminals and their options.

      Interactive terminals (wxt and qt)

      The multiplatform wxt and qt terminals are among the most widely used ones for their nicely looking outputs on display and for their interactive capabilities.

      You may set them as terminal with:

      "set term wxt size 800,600"

      or

      "set term qt  size 800,600"

      (the size 800,600 is optional and can be omitted).

      Press the h key on the window to display an help message with all available keyboard shortcuts. In particular press 6 to enable printing plot coordinates on Julia stdout (ensure mouse is enabled with m).

      Plot in a terminal application (dumb, sixel and sixelgd)

      Gnuplot supports plotting in a terminal application, with no need for X11 or other GUI support, via the dumb, sixel and sixelgd terminals. These are extremely useful when you run Julia on a remote shell through ssh, with no X11 forwarding. You may set these terminals with one of the following command:

      "set term dumb"
      +Gnuplot terminals · Gnuplot.jl

      Gnuplot terminals

      Gnuplot provides dozens of terminals to display plots or export them into files (see terminals() to get a list of enabled terminals on your platform). This section discuss a few tips on how to use the most common terminals.

      To use a specific terminal for interactive use you may either add it as initialization command for all new session with (see Options):

      push!(Gnuplot.options.init, "set term wxt")

      or directly send the command to a specific session (see Direct command execution)

      gpexec("set term wxt")

      See official gnuplot documentation for further info on terminals and their options.

      Interactive terminals (wxt and qt)

      The multiplatform wxt and qt terminals are among the most widely used ones for their nicely looking outputs on display and for their interactive capabilities.

      You may set them as terminal with:

      "set term wxt size 800,600"

      or

      "set term qt  size 800,600"

      (the size 800,600 is optional and can be omitted).

      Press the h key on the window to display an help message with all available keyboard shortcuts. In particular press 6 to enable printing plot coordinates on Julia stdout (ensure mouse is enabled with m).

      Plot in a terminal application (dumb, sixel and sixelgd)

      Gnuplot supports plotting in a terminal application, with no need for X11 or other GUI support, via the dumb, sixel and sixelgd terminals. These are extremely useful when you run Julia on a remote shell through ssh, with no X11 forwarding. You may set these terminals with one of the following command:

      "set term dumb"
       "set term sixel"
       "set term sixelgd"

      The dumb terminal uses ASCII characters to draw a plot, while sixel and sixelgd actually use bitmaps (but require Sixel support to be enabled in the terminal, e.g. xterm -ti vt340). A sixel plot on xterm looks as follows:

      The above terminals are available if gnuplot has been compiled with the --with-bitmap-terminals option enabled and Libgd (only for sixelgd).

      Export to image files

      Gnuplot provides dozens of terminals able to export on files. Examples are:

      • cairopng to export PNG files;
      • pdfcairo for PDF;
      • jpeg for JPG;
      • gif for GIF (see Animations).

      All the above terminals support the size and fontscale options to quickly adjust the size of the rasterized image and the size of the font respectively. E.g.:

      save(term="pngcairo size 480,360 fontscale 0.8", output="output.png")

      (see also save()).

      Gnuplot is also able to export vector (i.e. non-raster) plots through the svg terminal.

      The cairolatex terminal

      The cairolatex terminal allows to produce high quality plots by splitting the output into a PDF file (containing a rasterized image of a plot) and a .tex file (containing all the text as $\LaTeX$ code). The following example shows how to write plot tics and an equation in $\LaTeX$:

      x = LinRange(-2pi, 2pi, 1000)
       @gp t="Polynomial approximation of sin(x)"  "set style fill transparent solid 0.6 noborder"
      @@ -24,4 +24,4 @@ save(term="cairolatex pdf input color dashed size 5in,3.3in", output=&
       \begin{figure}
         \input{test.tex}
       \end{figure}
      -\end{document}

      And the output is:

      +\end{document}

      And the output is: