11. Plotting in XmGrace — Jscatter 1.2.6 documentation

# 11. Plotting in XmGrace

A high-level Python interface to the Grace plotting package XmGrace

- one line command plotting: plot of numpy arrays and dataArrays without predefining Data or Symbol objects.

- symbol, line and error are defined by list arguments as line=[1,0.5,3]

- Older functionality still works and can be used for more sophisticated output.

Example

    import jscatter as js
    data=js.dL('exampleData/iqt_1hho.dat')               #read data from test directory into dataList
    p=js.grace(3,2)                      #make plot with size 2,3
    # symbol=[-1,0.3,-1]  -> increment symbols,size 0.3, increment colors
    # line  =[1,1,'']     -> line type 1, line thickness 1, sync colors to symbol
    # legend='Q=$q'  takes the value of the parameter q from the data like in shell substitution
    #
    p.plot(data,symbol=-1,line=[1,1,''],legend='Q=$q')
    #
    # finetuning only if needed
    # make axes, legend, title, and subtitle to get nice plot
    p.yaxis(min=0.09,max=1.1,scale='l',label='I(Q,t)/I(Q,0)',charsize=1.50)
    p.xaxis(min=0.0,max=250,label='fouriertime t / ns ',charsize=1.50)
    p.legend(x=190,y=1)
    p.title('An example for the intermediate scattering function in \n Neutron Spinecho Spectroscopy',size=1)
    p.subtitle('colors of lines are sync to symbol color')
    # add a text
    p.text('Here we place a text just as demo\n at the last point of this dataset',x=90,y=0.18,charsize=1)
    p.save('testdata.agr') #as grace file
    p.save('testdata',format='jpeg') #as jpg file

Originally, this code of GracePlot started out from: Nathaniel Gray <n8gray@caltech.edu>, updated by Marcus H. Mendenhall, MHM ,John Kitchin, Marus Mendenhall

- original source -> sourceforge.net/projects/graceplot/ 2014 and according to that site: License: GNU General Public License version 2.0 (GPLv2)

- Consequently this file is still under GNU General Public License version 2.0 (GPLv2)

- 2019 changed some things to be only python 3 compatible

Ralf Biehl JCNS1 & ICS1 Forschungszentrum Juelich 2014-2019

Resources

  - XmGrace

  - Deutschsprachiges Benutzerhandbuch und FAQ

## 11.1. GracePlot

`GracePlot`([width, height, auto_redraw, …]) | Main class that defines the plot with page layout and may contain several graceGraph.
`jscatter.grace` |

`GracePlot.plot`(self, *args, **kwargs) | Shortcut for sending the command directly to the appropriate graceGraph object see below
`GracePlot.multi`(self, rows, cols[, offset, …]) | Create a grid of graphs with the given number of <rows> and <cols>
`GracePlot.new_graph`(self, **kwargs) | Add a new graph to plot.
`GracePlot.stacked`(self, number, hshift, vshift) | Creates a stacked chart with shifted graphs in the frame
`GracePlot.clear`(self, *args, **kwargs) | Shortcut for sending the command to current graceGraph see below
`GracePlot.exit`(self) | Nuke the grace session.
`GracePlot.legend`(self, *args, **kwargs) | Shortcut for sending the command to current graceGraph
`GracePlot.save`(self, filename[, size, dpi, …]) | Save the current plot.
`GracePlot.subtitle`(self, *args, **kwargs) | Shortcut for sending the command to current graceGraph see below
`GracePlot.text`(self, *args, **kwargs) | Writes text to graph at specified position.
`GracePlot.title`(self, *args, **kwargs) | Shortcut for sending the command to current graceGraph see below
`GracePlot.updateall`(self) | Update the GUI (graph and set selectors etc) to reflect the current project state
`GracePlot.write`(self, command) | Make a graceSession look like a file, and flush after send
`GracePlot.xaxis`(self, *args, **kwargs) | Shortcut for sending the command to current graceGraph see below
`GracePlot.xlabel`(self, *args, **kwargs) | Shortcut for sending the command to current graceGraph
`GracePlot.xlimit`(self, *args, **kwargs) | Shortcut for sending the command to current graceGraph
`GracePlot.yaxis`(self, *args, **kwargs) | Shortcut for sending the command to current graceGraph see below
`GracePlot.ylabel`(self, *args, **kwargs) | Shortcut for sending the command to current graceGraph
`GracePlot.ylimit`(self, *args, **kwargs) | Shortcut for sending the command to current graceGraph
`GracePlot.aspect_scale`(self, x, y) | scale view coordinates to that (1,1) fills view, roughly
`GracePlot.assign_color`(self, idx, rgb, name) | Assign color to an index including new colors.
`GracePlot.close`(self) | Closes the plot
`GracePlot.command_args` |
`GracePlot.focus`(self[, graph_index, grace_graph]) | Direct commands sent to the GracePlot to the appropriate GraceGraph.
`GracePlot.grace_command` |
`GracePlot.hold`(self, *args, **kwargs) | Shortcut for sending the command to current graceGraph see below
`GracePlot.is_open`(self) | Return True if the pipe is not known to have been closed.
`GracePlot.load_parameter_file`(self, …) | load a grace *.par file
`GracePlot.redraw`(self[, force, soon]) | Refresh the plot
`GracePlot.resetlast`(self) | Resets last used symbols and lines.
`GracePlot.resize`(self, xdim, ydim) | Change the page dimensions (in pixel)for plots with fixed size.
`GracePlot.resolution` | resolution of the plot
`GracePlot.send_commands`(self, *commands) | Send a list of commands, and then flush

## 11.2. GraceGraph

`GraceGraph.autoscale`(self[, axis]) | autoscales axes
`GraceGraph.autotick`(self) |
`GraceGraph.clear`(self[, slice, hold]) | Clear plot
`GraceGraph.frame`(self[, type, linestyle, …]) | Set frame type of graph
`GraceGraph.gen_axis`(self, axis_prefix[, …]) | general axis handler
`GraceGraph.grace`(self) |
`GraceGraph.hold`(self[, onoff]) | Turn on/off overplotting for this graph.
`GraceGraph.kill`(self) | Kill the plot
`GraceGraph.legend`(self[, strings, x, y, …]) | Place the legend in the plot or update it.
`GraceGraph.line`(self[, x1, y1, x2, y2, …]) | Draws line in plot
`GraceGraph.plot`(self, *datasets, **kwargs) | Plot data in xmgrace
`GraceGraph.redraw`(self, *args, **kwargs) | redraw Graph
`GraceGraph.resetlast`(self) | Resets last used symbols and lines.
`GraceGraph.subtitle`(self[, subtitle, font, …]) | Sets the graph subtitle
`GraceGraph.text`(self[, string, x, y, color, …]) | Writes text to graph at specified position.
`GraceGraph.title`(self[, title, font, size, …]) | Sets the graph title.
`GraceGraph.update_data`(self, set_index[, …]) | Efficiently update the data for a given data set.
`GraceGraph.xaxis`(self[, min, max]) | Set axis properties
`GraceGraph.xlabel`(self, label[, charsize]) | Convenience function to set the xaxis label charsize detemines charsize, default 1
`GraceGraph.xlimit`(self[, lower, upper]) | Convenience function to set the lower and/or upper bounds of the x-axis.
`GraceGraph.yaxis`(self[, min, max]) | Set axis properties
`GraceGraph.ylabel`(self, label[, charsize]) | Convenience function to set the yaxis label
`GraceGraph.ylimit`(self[, lower, upper]) | Convenience function to set the lower and/or upper bounds of the y-axis.
`GraceGraph.SetView`(self[, xmin, ymin, xmax, …]) | this sets the viewport coords so they are available later for translating string and line coords.

## 11.3. Helper Classes

`Annotation`([onoff, type, charsize, font, …]) | controls annotation
`Bar`([axis, onoff, color, linestyle, linewidth]) | this class controls the x and y bars in the frame apparently usually it is off onoff is ‘on’ or ‘off’ the rest are like everything else
`Data`([x, y, symbol, line, legend, comment, …]) | Simplest base class for all GracePlot data objects.
`DataBar`([x, y, symbol, line, legend, …]) |
`DataXYBoxWhisker`(x, y, whisker_down, …) | A data set with a box for an asymmetrical inner error in the ‘y’ direction and an error bar (whisker) for the asymmetrical outer error bound.
`DataXYDX`(x, y, dx, **kwargs) | A data set with symmetrical error bars in the ‘x’ direction
`DataXYDXDX`(x, y, dx_left, dx_right, **kwargs) | A data set with asymmetrical error bars in the ‘x’ direction
`DataXYDXDXDYDY`(x, y, dx_left, dx_right, …) | A data set with asymmetrical error bars in the ‘x’ and ‘y’ direction
`DataXYDXDY`(x, y, dx, dy, **kwargs) | A data set with symmetrical error bars in the ‘x’ and ‘y’ direction
`DataXYDY`(x, y, dy, **kwargs) | A data set with symmetrical error bars in the ‘y’ direction
`DataXYDYDY`(x, y, dy_down, dy_up, **kwargs) | A data set with asymmetrical error bars in the ‘y’ direction
`DataXYZ`(x, y, z, **kwargs) |
`Errorbar`([onoff, place, color, pattern, …]) | class for errorbars
`Label`([string, layout, place, charsize, …]) | Used for labels of the x-axis and y-axis
`Line`([type, linestyle, linewidth, color, …]) | Line objekt
`Symbol`([type, symbol, size, color, pattern, …]) | Symbol object
`Tick`([axis, onoff, major, minorticks, …]) | Controls appearence of ticks on an axis.
`TickLabel`([axis, onoff, type, prec, format, …]) | Ticklabels
`colors` |
`fills` |
`frames` |
`lines` |
`symbols` |
`Disconnected` | Thrown when xmgrace unexpectedly disconnects from the pipe.
`format_scientific` |
`inheritDocstringFrom`(cls) |
`on_off`(flag) | convert a bool into an xmgrace on/off string

A high-level Python interface to the Grace plotting package XmGrace

- one line command plotting: plot of numpy arrays and dataArrays without predefining Data or Symbol objects.

- symbol, line and error are defined by list arguments as line=[1,0.5,3]

- Older functionality still works and can be used for more sophisticated output.

Example

    import jscatter as js
    data=js.dL('exampleData/iqt_1hho.dat')               #read data from test directory into dataList
    p=js.grace(3,2)                      #make plot with size 2,3
    # symbol=[-1,0.3,-1]  -> increment symbols,size 0.3, increment colors
    # line  =[1,1,'']     -> line type 1, line thickness 1, sync colors to symbol
    # legend='Q=$q'  takes the value of the parameter q from the data like in shell substitution
    #
    p.plot(data,symbol=-1,line=[1,1,''],legend='Q=$q')
    #
    # finetuning only if needed
    # make axes, legend, title, and subtitle to get nice plot
    p.yaxis(min=0.09,max=1.1,scale='l',label='I(Q,t)/I(Q,0)',charsize=1.50)
    p.xaxis(min=0.0,max=250,label='fouriertime t / ns ',charsize=1.50)
    p.legend(x=190,y=1)
    p.title('An example for the intermediate scattering function in \n Neutron Spinecho Spectroscopy',size=1)
    p.subtitle('colors of lines are sync to symbol color')
    # add a text
    p.text('Here we place a text just as demo\n at the last point of this dataset',x=90,y=0.18,charsize=1)
    p.save('testdata.agr') #as grace file
    p.save('testdata',format='jpeg') #as jpg file

Originally, this code of GracePlot started out from: Nathaniel Gray <n8gray@caltech.edu>, updated by Marcus H. Mendenhall, MHM ,John Kitchin, Marus Mendenhall

- original source -> sourceforge.net/projects/graceplot/ 2014 and according to that site: License: GNU General Public License version 2.0 (GPLv2)

- Consequently this file is still under GNU General Public License version 2.0 (GPLv2)

- 2019 changed some things to be only python 3 compatible

Ralf Biehl JCNS1 & ICS1 Forschungszentrum Juelich 2014-2019

Resources

  - XmGrace

  - Deutschsprachiges Benutzerhandbuch und FAQ

class `jscatter.graceplot.` `Annotation`(onoff=True, type=None, charsize=None, font=None, color=None, rot=None, format=None, prec=None, prepend=None, append=None, offset=None)

  Bases: `object`

  controls annotation

  Parameters
    onoff‘on’ or ‘off’
    typeint
    charsizefloat
    fontint
    colorint
    rotfloat
    formatint
    precint
    prependint
    appendint
    offsetint
  `output`(self, dataset)

    list output to sent to grace

class `jscatter.graceplot.` `Bar`(axis=None, onoff=True, color=None, linestyle=None, linewidth=None)

  Bases: `object`

  this class controls the x and y bars in the frame apparently usually it is off onoff is ‘on’ or ‘off’ the rest are like everything else

  `output`(self, axis)

    list output to sent to grace

class `jscatter.graceplot.` `Data`(x=None, y=None, symbol=None, line=None, legend='', comment=None, errorbar=None, pairs=None, dylist=None, **kwargs)

  Bases: `object`

  Simplest base class for all GracePlot data objects.

  `dataset_type_name` = 'xy'
  `output`(self, graceGraph, count)

    No checking is done to make sure the datasets are consistent with each other, same number of x and y etc… Support of None values is only in the xy graph.

  `output_differences`(self, graceGraph, count, new_x, new_y, new_dylist)

    output strings to modify already created datasets, issuing results only for changed items

  `x_format_string` = '%s'
  `y_format_string` = '%s'

class `jscatter.graceplot.` `DataBar`(x=None, y=None, symbol=None, line=None, legend='', comment=None, errorbar=None, pairs=None, dylist=None, **kwargs)

  Bases: `jscatter.graceplot.Data`

  `dataset_type_name` = 'bar'

class `jscatter.graceplot.` `DataXYBoxWhisker`(x, y, whisker_down, box_down, whisker_up, box_up, **kwargs)

  Bases: `jscatter.graceplot.Data`

  A data set with a box for an asymmetrical inner error in the ‘y’ direction and an error bar (whisker) for the asymmetrical outer error bound. The symbol properties set the color (etc.) of the box. The errorbar properties set the color (etc.) of the whisker

  `dataset_type_name` = 'xyboxplot'

class `jscatter.graceplot.` `DataXYDX`(x, y, dx, **kwargs)

  Bases: `jscatter.graceplot.Data`

  A data set with symmetrical error bars in the ‘x’ direction

  `dataset_type_name` = 'xydx'

class `jscatter.graceplot.` `DataXYDXDX`(x, y, dx_left, dx_right, **kwargs)

  Bases: `jscatter.graceplot.Data`

  A data set with asymmetrical error bars in the ‘x’ direction

  `dataset_type_name` = 'xydxdx'

class `jscatter.graceplot.` `DataXYDXDXDYDY`(x, y, dx_left, dx_right, dy_down, dy_up, **kwargs)

  Bases: `jscatter.graceplot.Data`

  A data set with asymmetrical error bars in the ‘x’ and ‘y’ direction

  `dataset_type_name` = 'xydxdxdydy'

class `jscatter.graceplot.` `DataXYDXDY`(x, y, dx, dy, **kwargs)

  Bases: `jscatter.graceplot.Data`

  A data set with symmetrical error bars in the ‘x’ and ‘y’ direction

  `dataset_type_name` = 'xydxdy'

class `jscatter.graceplot.` `DataXYDY`(x, y, dy, **kwargs)

  Bases: `jscatter.graceplot.Data`

  A data set with symmetrical error bars in the ‘y’ direction

  `dataset_type_name` = 'xydy'

class `jscatter.graceplot.` `DataXYDYDY`(x, y, dy_down, dy_up, **kwargs)

  Bases: `jscatter.graceplot.Data`

  A data set with asymmetrical error bars in the ‘y’ direction

  `dataset_type_name` = 'xydydy'

class `jscatter.graceplot.` `DataXYZ`(x, y, z, **kwargs)

  Bases: `jscatter.graceplot.Data`

  `dataset_type_name` = 'xyz'

exception `jscatter.graceplot.` `Disconnected`

  Bases: `Exception`

  Thrown when xmgrace unexpectedly disconnects from the pipe.

  This exception is thrown on an EPIPE error, which indicates that xmgrace has stopped reading the pipe that is used to communicate with it. This could be because it has been closed (e.g., by clicking on the exit button), crashed, or sent an exit command.

class `jscatter.graceplot.` `Errorbar`(onoff=True, place=None, color=None, pattern=None, size=None, linewidth=None, linestyle=None, riserlinewidth=None, riserlinestyle=None, riserclip=None, risercliplength=None)

  Bases: `object`

  class for errorbars

  Parameters
    onoffTrue False,’on’,’off’, default on

      turns the error bars on or off

    place‘normal’, ‘opposite’, ‘both’ default ‘both’
    colorint

      color integer

    patternint
    linewidthfloat
    linestyleint
    riserlinewidthfloat

      risers are the lines from the symbol to the end

    riserlinestyleint
    riserclip‘on’,’off’

      set to on or off, determines if an arrow is drawn for error bars offscale

    risercliplengthfloat
  `output`(self, symbol)

    list output to sent to grace

class `jscatter.graceplot.` `GraceGraph`(grace, gID, xmin=0.15, xmax=0.95, ymin=0.15, ymax=0.9)

  Bases: `object`

  class for handling GraceGraph

  Parameters
    gIDinteger

      Graph ID

    xmin,xmax,ymin,ymaxfloat default 0.15,0.95,0.15,0.88

      position of edges in plot in relative view coordinates

  `Autoscale`(self, axis=None)

    autoscales axes

    axis‘x’,’y’,None

      None, scale all axes, otherwise if it is ‘x’ or ‘y’ scale that axis

  `Clear`(self, slice=slice(None, None, None), hold=0)

    Clear plot

    Parameters
      sliceslice

        Selects elements to delete. If ommited clear all. e.g. last for elements slice=slice(-4) Dont use slice extensivly as it could mess up.

      holdbool, default 0

        Set/reset to hold lines.

  `Legend`(self, strings=None, x=None, y=None, boxcolor=None, boxpattern=None, boxlinewidth=None, boxlinestyle=None, boxfillcolor=None, boxfillpattern=None, font=None, charsize=None, color=None, length=None, vgap=None, hgap=None, invert=None, world_coords=True, offset=0, onoff=True, position=None)

    Place the legend in the plot or update it.

    Parameters
      stringslist of strings,string, default=None

        List of legend strings or one string. If None then self.legend_strings is used. self.legend_strings is build from legend attribute in plot

      offsetint, default 0

        Which legend string to change if strings is single string >0 with offset shifted =<0 starting from last reverse order default 0 names last legend

      x,y: float

        Position of the upper left corner of the box in data coordinates

      boxcolorint

        Color of the legend box lines

      boxpatterninteger

        Pattern of the legend box lines

      boxlinewidthfloat

        Thickness of the line

      boxlinestyle,boxfillcolor,boxfillpatterninteger

        As name says

      fontint

        Is the font used in the legend

      charsizefloat

        Size of the characters

      lengthint

        Length of the box must be an integer

      vgapint

        Vertical space between entries, can be a float

      hgapfloat

        Horizontal spacing in the box can be a float

      invertbool, (True,False)

        Order of entries, either in the order they are entered, or the opposite

      onoffbool

        Show legend or not

      position‘ll’, ‘ur’, ‘ul’, ‘lr’

        Legend position shortcut. Shortcuts for lower left, upper right, upper left, lower right.

  `Plot`(self, *datasets, **kwargs)

    Plot data in xmgrace

    e.g. p.plot(data,legend=’description’,symbol=[1,0.5,4],line=[1,2,2],errorbar=[0])

    Parameters
      datasetsdataArray, dataList,numpy array, lists of them

        Several of (comma separated) nonkeyword arguments or as list. If dimension of datasets is one a new Data object is created and plotted see Notes below for error plots.

      symbol,syint, list of float or Symbol object

        - [symbol,size,color,fillcolor,fillpattern] as [1,1,1,-1];

        - single integer to chose symbol eg symbol=3; symbol=0 switches off

        - negative increments from last, non integer repeat last

        - symbol => 0-11 = ◦,☐,♢,▵,◁,▽,▷,+,×,☆,(11 is char)

        - size => size, a number eg 0.5

        - color => int 0-16 = white,black,red,green,blue,ligth green,brown,

            darkgrey,violet,orange,magenta,grey

        - fillcolor=None set color and adds fillpattern=1,

            non-integer syncs to symbol color

        - fillpattern=None 0 empty, 1 full, ….test it

      line,liint, list of float or Line object

        - [linestyle,linewidth,color] as [1,1,’’];

        - negative increments;non integer as ‘’ repeats last

        - single integer to chose line line=1; line=0 switches of

        - linestyle int 1 normal, 2 dotted, 3 dashed, 4 long dashed, 5 dot-dashed

        - linewidth float goes from 0 to 6 in increasing thickness

        - color see symbol color, non-integer syncs to symbol color

      errorbar,erint or list of float or Errorbar object

        - [color,size,linewidth,riserlinewidth] as [1,1,1,1]; no increment, no repeat

        - color int see symbol color, non-integer syncs to symbol color

        - size float default 1.0 ; smaller is 0.5

        - linewidth float default 1.0

        - riserlinewidth float default 1.0

      legend,lestring

        - determines legend for all datasets

        - string replacement: attr name prepended by ‘$’ (eg. ‘$par’) is replaced by value str(par1.flatten()[0]) if possible. $(par) for not unique names

      comment: string

        - string determines comment for all datasets

        - for dataArray: list of attribute values is set as comment to ckeck use dataArray.resumeAttrTxt()

      autoscalebool

        default True, False

      internal_autoscalebool

        default True, False 10% border

      redrawbool

        redraw

    Notes

    Plot types determined by dimension of dataset

    - 1: dataset is type Data instances

        See Data class for possibilities and original documentation.

    - 2: dataset is numpy array; simplified version
        Use slices like data_in_numpyarray[[0,3,2],:] to select columns to plot

          - len(array)= 2 XY

          - len(array)= 3 XYDY

          - len(array)= 4 XYDXDY

    - 3: dataset is dataArray ; simplified version

        - attributes X,Y,eY,eX determine plot type if they exist. So set these before plot by dataset.setColumnIndex(3,4,7)

        - default is 0,1,2 for X,Y,eY, No eX

        - Slicing works too as for arrays.

    For more complex plots use original Data class in 1. Old style plotting needs creation of GracePlot.Data objects like

        d1=Data(x=x,y=y,symbol=GracePlot.Symbol(symbol=circle,fillcolor=red),line=GracePlot.Line(type=none))
        or in short abreviation:
        d1=Data(x=x,y=y,symbol=[-1,2,3,4],line=[1,2,3])
        #plotted sets can be accessed by
        p[0].datasets   as a list of Data objects

    Examples

        tX =np.r_[0:10]
        tY=np.sin(tX)
        data=np.c_[tX,tY,tY*0.05].T
        p=s.grace()                    # open plot
        # plot single column data tX,tY,teY
        p.plot(tX,tY,legend='all 1D data',symbol=3,line=1,errorbar=[0])
        #plot Data with arrray or dataList
        p.plot(data,legend='description',symbol=[1,0.5,4],line=[1,2,2],errorbar=[0])
        p.yaxis(label='whatever / m')  # change y label
        p.legend()                     # show legends

  `SetView`(self, xmin=None, ymin=None, xmax=None, ymax=None, aspect_scaled=True)

    this sets the viewport coords so they are available later for translating string and line coords.

    Parameters
      xmin,xmax,ymin,ymaxfloat

        view range

      aspect_scaledbool

        aspect

  `Subtitle`(self, subtitle=None, font=None, size=None, color=None)

    Sets the graph subtitle

    see title

  `Title`(self, title=None, font=None, size=None, color=None)

    Sets the graph title.

    Parameters
      titlestring

        Title string

      font

        Font of title

      sizefloat

        Size of title

      colorinteger

        Color of title

  `Xaxis`(self, min=None, max=None, **kwargs)

    Set axis properties

    Parameters
      minfloat

        Minimum axis value

      maxfloat

        Maximum axis value

      scale{‘normal’, ‘logarithmic’, or ‘reciprocal’ or respectively ‘n’,’l’,’r’}

        Sets type of axis

      labelstring or Label object

        Label of the axis; see Label object. If string this is the label string. If list it determines [label string,charsize,place,color] place : ‘normal’,’both’,’opposite’

      invert{True,False}

        Invert axis

      formulagrace equation

        Formula for ticklabel calculation eg. rescaling $t is label -> ‘$t*1e5’

      charsize,sizefloat

        Determines size, default 1

      offsetlist of float

        Determines the position of the normal and opposite axis position

      autotickbool

        Autoticking

      tickTick object or list, False True

        List of [major tick distance , minorticks number,majorsize,minorsize,position] position: ‘normal’,’both’,’opposite’ (first letter is enough) False/True switch Ticks on and off see Tick for more

      ticklabelfloat, list, tickLabel object

        With [format,precision,charsize,placeon] or only charsize format: ‘decimal’,’exponential’,’general’,’power’,’scientific’ precision: integer placeon: ‘normal’,’both’,’opposite’

      barlist or bar object

        See bar object list=[onoff,color,linestyle,linewidth]

  `Yaxis`(self, min=None, max=None, **kwargs)

    Set axis properties

    Parameters
      minfloat

        Minimum axis value

      maxfloat

        Maximum axis value

      scale{‘normal’, ‘logarithmic’, or ‘reciprocal’ or respectivly ‘n’,’l’,’r’}

        Sets type of axis

      labelstring or Label object

        Label of the axis; see Label object. If string this is the label string. If list it determines [label string,charsize,place,color] place : ‘normal’,’both’,’opposite’

      invert{True,False}

        Invert axis

      formulagrace equation

        Formula for ticklabel calculation eg. rescaling $t is label -> scaling as $t*1e5

      charsizefloat

        Determines size, default 1

      offsetlist of float

        Determines the position of the normal and opposite axis position

      autotickbool

        Autoticking

      tickTick object or list, False True

        List of [major tick distance , minorticks number,majorsize,minorsize,position] position as one of ‘normal’,’both’,’opposite’ (first letter is enough) False True switch Ticks on and off see Tick for more

      ticklabelfloat, list, tickLabel object

        With [format,precision,charsize,placeon] or only charsize format: ‘decimal’,’exponential’,’general’,’power’,’scientific’ precision : integer placeon : ‘normal’,’both’,’opposite’

      barlist or bar object

        See bar object list=[onoff,color,linestyle,linewidth]

  `autoscale`(self, axis=None)

    autoscales axes

    axis‘x’,’y’,None

      None, scale all axes, otherwise if it is ‘x’ or ‘y’ scale that axis

  `autotick`(self)
  `clear`(self, slice=slice(None, None, None), hold=0)

    Clear plot

    Parameters
      sliceslice

        Selects elements to delete. If ommited clear all. e.g. last for elements slice=slice(-4) Dont use slice extensivly as it could mess up.

      holdbool, default 0

        Set/reset to hold lines.

  `frame`(self, type=None, linestyle=None, linewidth=None, color=None, pattern=None, backgroundcolor=None, backgroundpattern=None)

    Set frame type of graph

    Parameters
      type[0,1,2,3,4,5] => closed,halfopen,breaktop,breakbottom,breakleft,breakright

        Boxtype

      linestyleint

        Linestyle; see plot

      linewidthfloat

        linewidth; see plot

      colorint; see plot

        Color

      patternint

        Pattern

      backgroundcolorint

        Color

      backgroundpatternint

        Pattern

    Notes

    For the different types except of close the axis bar and tick marks need to be removed

  `gen_axis`(self, axis_prefix, ax_min=None, ax_max=None, scale=None, invert=None, formula=None, offset=None, label=None, ticklabel=None, charsize=None, size=None, tick=None, bar=None, autotick=True)

    general axis handler

    Parameters
      axis_prefix{‘x’,’y’}

        determines axis

      ax_min,ax_maxfloat

        min and max of axis

      scale{‘normal’, ‘logarithmic’, or ‘reciprocal’ or respectivly ‘n’,’l’,’r’}

        sets type of axis

      labelstring, list or Label object

        Label of the axis; see Label object. If string this is the label string. If list it determines [label string,charsize,place,color] place : ‘normal’,’both’,’opposite’

      invert{True,False}

        invert axis

      formulagrace equation

        formula for ticklabel calculation eg. rescaling $t is label -> scaling as $t*1e5

      charsize,sizefloat

        determines character size, default 1

      offsetlist of float

        determines the position of the normal and opposite axis position

      autotickbool

        autoticking

      tickTick object or list, False, True

        list of [major tick distance , minorticks number,majorsize,minorsize,position] position as one of ‘normal’,’both’,’opposite’ (first letter is enough) False, True switch Ticks on and off see Tick for more

      ticklabelfloat, list, tickLabel object

        With [format,precision,charsize,placeon] or only charsize format: ‘decimal’,’exponential’,’general’,’power’,’scientific’ precision : integer placeon : ‘normal’,’both’,’opposite’

      bar‘on’,’off’,list or bar object

        see bar object on off switch on or off list=[onoff,color,linestyle,linewidth]

  `grace`(self)
  `hold`(self, onoff=None)

    Turn on/off overplotting for this graph.

    Call as hold() to toggle, hold(1) to turn on, or hold(0) to turn off. Returns the previous hold setting.

  `kill`(self)

    Kill the plot

  `legend`(self, strings=None, x=None, y=None, boxcolor=None, boxpattern=None, boxlinewidth=None, boxlinestyle=None, boxfillcolor=None, boxfillpattern=None, font=None, charsize=None, color=None, length=None, vgap=None, hgap=None, invert=None, world_coords=True, offset=0, onoff=True, position=None)

    Place the legend in the plot or update it.

    Parameters
      stringslist of strings,string, default=None

        List of legend strings or one string. If None then self.legend_strings is used. self.legend_strings is build from legend attribute in plot

      offsetint, default 0

        Which legend string to change if strings is single string >0 with offset shifted =<0 starting from last reverse order default 0 names last legend

      x,y: float

        Position of the upper left corner of the box in data coordinates

      boxcolorint

        Color of the legend box lines

      boxpatterninteger

        Pattern of the legend box lines

      boxlinewidthfloat

        Thickness of the line

      boxlinestyle,boxfillcolor,boxfillpatterninteger

        As name says

      fontint

        Is the font used in the legend

      charsizefloat

        Size of the characters

      lengthint

        Length of the box must be an integer

      vgapint

        Vertical space between entries, can be a float

      hgapfloat

        Horizontal spacing in the box can be a float

      invertbool, (True,False)

        Order of entries, either in the order they are entered, or the opposite

      onoffbool

        Show legend or not

      position‘ll’, ‘ur’, ‘ul’, ‘lr’

        Legend position shortcut. Shortcuts for lower left, upper right, upper left, lower right.

  `line`(self, x1=None, y1=None, x2=None, y2=None, linewidth=None, linestyle=None, color=None, arrow=None, arrowtype=None, arrowlength=None, arrowlayout=None, world_coords=True)

    Draws line in plot

    Coordinates are the cartesian cooridinates for a single graph.

    x1,y1,x2,y2float

      Start and end point

    linewidthfloat

      Width

    linestyleint

      Style

    colorint

      Color

    arrow

      Tells where the arrowhead is and is 0,1,2, or 3 for none, start, end, both ends

    arrowtype

      Is for line (0), filled (1), or opaque (2), and only have an effect if the arrowlayout is not (1,1)

    arrowlayout

      Must be a list of 2 numbers, arrowlayout=(1,1) the first number relates to d/L and the second is I/L the meaning of which is unclear, but they affect the arrow shape.

  `plot`(self, *datasets, **kwargs)

    Plot data in xmgrace

    e.g. p.plot(data,legend=’description’,symbol=[1,0.5,4],line=[1,2,2],errorbar=[0])

    Parameters
      datasetsdataArray, dataList,numpy array, lists of them

        Several of (comma separated) nonkeyword arguments or as list. If dimension of datasets is one a new Data object is created and plotted see Notes below for error plots.

      symbol,syint, list of float or Symbol object

        - [symbol,size,color,fillcolor,fillpattern] as [1,1,1,-1];

        - single integer to chose symbol eg symbol=3; symbol=0 switches off

        - negative increments from last, non integer repeat last

        - symbol => 0-11 = ◦,☐,♢,▵,◁,▽,▷,+,×,☆,(11 is char)

        - size => size, a number eg 0.5

        - color => int 0-16 = white,black,red,green,blue,ligth green,brown,

            darkgrey,violet,orange,magenta,grey

        - fillcolor=None set color and adds fillpattern=1,

            non-integer syncs to symbol color

        - fillpattern=None 0 empty, 1 full, ….test it

      line,liint, list of float or Line object

        - [linestyle,linewidth,color] as [1,1,’’];

        - negative increments;non integer as ‘’ repeats last

        - single integer to chose line line=1; line=0 switches of

        - linestyle int 1 normal, 2 dotted, 3 dashed, 4 long dashed, 5 dot-dashed

        - linewidth float goes from 0 to 6 in increasing thickness

        - color see symbol color, non-integer syncs to symbol color

      errorbar,erint or list of float or Errorbar object

        - [color,size,linewidth,riserlinewidth] as [1,1,1,1]; no increment, no repeat

        - color int see symbol color, non-integer syncs to symbol color

        - size float default 1.0 ; smaller is 0.5

        - linewidth float default 1.0

        - riserlinewidth float default 1.0

      legend,lestring

        - determines legend for all datasets

        - string replacement: attr name prepended by ‘$’ (eg. ‘$par’) is replaced by value str(par1.flatten()[0]) if possible. $(par) for not unique names

      comment: string

        - string determines comment for all datasets

        - for dataArray: list of attribute values is set as comment to ckeck use dataArray.resumeAttrTxt()

      autoscalebool

        default True, False

      internal_autoscalebool

        default True, False 10% border

      redrawbool

        redraw

    Notes

    Plot types determined by dimension of dataset

    - 1: dataset is type Data instances

        See Data class for possibilities and original documentation.

    - 2: dataset is numpy array; simplified version
        Use slices like data_in_numpyarray[[0,3,2],:] to select columns to plot

          - len(array)= 2 XY

          - len(array)= 3 XYDY

          - len(array)= 4 XYDXDY

    - 3: dataset is dataArray ; simplified version

        - attributes X,Y,eY,eX determine plot type if they exist. So set these before plot by dataset.setColumnIndex(3,4,7)

        - default is 0,1,2 for X,Y,eY, No eX

        - Slicing works too as for arrays.

    For more complex plots use original Data class in 1. Old style plotting needs creation of GracePlot.Data objects like

        d1=Data(x=x,y=y,symbol=GracePlot.Symbol(symbol=circle,fillcolor=red),line=GracePlot.Line(type=none))
        or in short abreviation:
        d1=Data(x=x,y=y,symbol=[-1,2,3,4],line=[1,2,3])
        #plotted sets can be accessed by
        p[0].datasets   as a list of Data objects

    Examples

        tX =np.r_[0:10]
        tY=np.sin(tX)
        data=np.c_[tX,tY,tY*0.05].T
        p=s.grace()                    # open plot
        # plot single column data tX,tY,teY
        p.plot(tX,tY,legend='all 1D data',symbol=3,line=1,errorbar=[0])
        #plot Data with arrray or dataList
        p.plot(data,legend='description',symbol=[1,0.5,4],line=[1,2,2],errorbar=[0])
        p.yaxis(label='whatever / m')  # change y label
        p.legend()                     # show legends

  `redraw`(self, *args, **kwargs)

    redraw Graph

    pass through to our GraceGraph instance

  `resetlast`(self)

    Resets last used symbols and lines.

    lastline=[1,0,0] lastsymbol=[1,0.5,1,0] lasterror=[0,0,0,0]

  `shiftbyfactor`(self, xy=None, factor=None, repeat=None, scale='lin', xfactors=None, yfactors=None)

    Shift data consecutively by factors

    Consecutively multiply by 2 as 2,4,6,8…. or with power laws.

    Parameters
      xy‘xy’

        Selector for x or y axis or both

      factorfloat

        Shift factor

      repeatfloat default=number of sets in plot

        Repeat number of times the factor 3 -> 2,4,6,2,4,6… for factor=2

      xfactorsarray or list

        Factors as list, overrides factor and repeat

      yfactorsarray or list

        Factors as list,overrides factor and repeat dylist is also shifted

      scale‘log’, other

        If ‘log’ a factor**i is used for logarithmic scale all other factor*i is used

    Notes

    List is

        factor*np.tile(np.r_[1:repeat+1],nSets)  lin scale
        factor**np.tile(np.r_[1:repeat+1],nSets)  log scale

    Create factors manually e.g. by

        np.tile([1,2,3],3)         -->  array([1, 2, 3, 1, 2, 3, 1, 2, 3])
        1.1**np.tile([1,1,2],3)    -->  array([1.1, 1.1, 1.21, 1.1, 1.1, 1.21, 1.1, 1.1, 1.21])
        #for an inverse shifting
        2*np.tile(np.r_[10:1:-1],3)-->  array([20, 18, 16, 14, 12, 10,  8,  6,  4, 20, 18, 16, 14, 12, 10,  8,  6, 4])

  `subtitle`(self, subtitle=None, font=None, size=None, color=None)

    Sets the graph subtitle

    see title

  `text`(self, string=None, x=None, y=None, color=None, rot=None, font=None, just=None, charsize=None, world_coords=True)

    Writes text to graph at specified position.

    Parameters
      stringstring

        Text to print

      x,y: float

        Coordinates are the cartesian coordinates of x,y axis

      colorint

        Color

      rotfloat

        Rotation angle

      fontint

        Font as defined in default xmgrace plot

      just

        Justification

      charsizefloat

        Charsize

      world_coordsbool

        World coordinates or viewport coordinates

    Notes

    Try in Gui for values.

  `title`(self, title=None, font=None, size=None, color=None)

    Sets the graph title.

    Parameters
      titlestring

        Title string

      font

        Font of title

      sizefloat

        Size of title

      colorinteger

        Color of title

  `update_data`(self, set_index, new_x=None, new_y=None, new_dylist=None)

    Efficiently update the data for a given data set. set length, etc. must not change!

  `xaxis`(self, min=None, max=None, **kwargs)

    Set axis properties

    Parameters
      minfloat

        Minimum axis value

      maxfloat

        Maximum axis value

      scale{‘normal’, ‘logarithmic’, or ‘reciprocal’ or respectively ‘n’,’l’,’r’}

        Sets type of axis

      labelstring or Label object

        Label of the axis; see Label object. If string this is the label string. If list it determines [label string,charsize,place,color] place : ‘normal’,’both’,’opposite’

      invert{True,False}

        Invert axis

      formulagrace equation

        Formula for ticklabel calculation eg. rescaling $t is label -> ‘$t*1e5’

      charsize,sizefloat

        Determines size, default 1

      offsetlist of float

        Determines the position of the normal and opposite axis position

      autotickbool

        Autoticking

      tickTick object or list, False True

        List of [major tick distance , minorticks number,majorsize,minorsize,position] position: ‘normal’,’both’,’opposite’ (first letter is enough) False/True switch Ticks on and off see Tick for more

      ticklabelfloat, list, tickLabel object

        With [format,precision,charsize,placeon] or only charsize format: ‘decimal’,’exponential’,’general’,’power’,’scientific’ precision: integer placeon: ‘normal’,’both’,’opposite’

      barlist or bar object

        See bar object list=[onoff,color,linestyle,linewidth]

  `xlabel`(self, label, charsize=None)

    Convenience function to set the xaxis label charsize detemines charsize, default 1

  `xlimit`(self, lower=None, upper=None)

    Convenience function to set the lower and/or upper bounds of the x-axis.

  `yaxis`(self, min=None, max=None, **kwargs)

    Set axis properties

    Parameters
      minfloat

        Minimum axis value

      maxfloat

        Maximum axis value

      scale{‘normal’, ‘logarithmic’, or ‘reciprocal’ or respectivly ‘n’,’l’,’r’}

        Sets type of axis

      labelstring or Label object

        Label of the axis; see Label object. If string this is the label string. If list it determines [label string,charsize,place,color] place : ‘normal’,’both’,’opposite’

      invert{True,False}

        Invert axis

      formulagrace equation

        Formula for ticklabel calculation eg. rescaling $t is label -> scaling as $t*1e5

      charsizefloat

        Determines size, default 1

      offsetlist of float

        Determines the position of the normal and opposite axis position

      autotickbool

        Autoticking

      tickTick object or list, False True

        List of [major tick distance , minorticks number,majorsize,minorsize,position] position as one of ‘normal’,’both’,’opposite’ (first letter is enough) False True switch Ticks on and off see Tick for more

      ticklabelfloat, list, tickLabel object

        With [format,precision,charsize,placeon] or only charsize format: ‘decimal’,’exponential’,’general’,’power’,’scientific’ precision : integer placeon : ‘normal’,’both’,’opposite’

      barlist or bar object

        See bar object list=[onoff,color,linestyle,linewidth]

  `ylabel`(self, label, charsize=None)

    Convenience function to set the yaxis label

  `ylimit`(self, lower=None, upper=None)

    Convenience function to set the lower and/or upper bounds of the y-axis.

class `jscatter.graceplot.` `GracePlot`(width=None, height=None, auto_redraw=True, redraw_interval=0.1, headless=False)

  Bases: `object`

  Main class that defines the plot with page layout and may contain several graceGraph.

  jscatter.grace = GracePlot

  Parameters
    widthfloat

      Pagewidth, width*resolution=width in pixels same for height

    heightfloat

      Pageheight

    auto_redrawbool

      Redraw

    redraw_intervalfloat

      Time between redraw

    headlessbool

      Use plot in nonGui mode (headless). Save Plot using save method and inspect later.

  Returns
    GracePlotGracePlot instance

  Notes

  default resolution is 300 dpi

  Create a GracePlot object, which manages an external grace instance. The instance may have multiple GraceGraph objects within it. Commands which are specific to a graph (such as plotting data) are sent to the graph object. Commanbds which are global (such as redraw control) are sent to the GracePlot object.

  width*resolution=width in pixels, same for height. Resolution is set to 300 by default, so width is roughly inches on an 300 dpi monitor. By changing the class default resolution, you can change the units of width & height.

  If auto_redraw is True, the graph will automatically hold off redrawing until data stops being sent for a time of redraw_interval (seconds).

  To force an immediate redraw, call GracePlot.redraw(force=True). Calling GracePlot.redraw() without an argument schedules a redraw at the next quiet interval. This mechanism greatly reduces thrashing of grace windows by repeated un-needed redraws.

  To force a redraw on the next cycle of the redrawing thread, call GracePlot.redraw(soon=True). This will cause a redraw even if there is still data flowing, but not in a hurry.

  The GracePlot class does all its data transmission through a thread, so usually there should be no significant time during which the calling thread is blocked. This should improve real-time performance.

  `Clear`(self, *args, **kwargs)

    Shortcut for sending the command to current graceGraph see below

    Clear plot

    Parameters
      sliceslice

        Selects elements to delete. If ommited clear all. e.g. last for elements slice=slice(-4) Dont use slice extensivly as it could mess up.

      holdbool, default 0

        Set/reset to hold lines.

  `Exit`(self)

    Nuke the grace session.

  `Multi`(self, rows, cols, offset=0.13, hgap=0.1, vgap=0.15)

    Create a grid of graphs with the given number of <rows> and <cols>

    Arrange existing graphs (or add extra if needed) to form an nrows by ncols matrix, leaving offset at each page edge with hgap and vgap relative horizontal and vertical spacings

    Parameters
      rows,colsinteger

        Number of graphs

      offsetfloat

        Offset from edges

      hgap,vgapfloat

        Horizontal, vertical gap between plots

    Notes

    Overmuch graphs are deleted

  `Save`(self, filename, size=1012, 760, dpi=300, format=None)

    Save the current plot.

    Parameters
      filenamestring

        If filename has extension this is used instead of format.

      sizetuple 2 x integer

        Size in dots. For PRL and other papers: Figures should be planned for the column width (8.6 cm or 3 3/8 in.)

        > - 506 pixel 150 dpi (ok in powerpoint as png )

        > - 1012 pixel 300 dpi (default)

        > - 2024 pixel 600 dpi (paper ready quality e.g as eps)

      dpiin
        resolution in dots per inch (2.54 cm)

          format : string x11, postscript, eps, pdf, mif, svg, pnm, jpeg, png, metafile

      formatDefault is Grace ‘.agr’ file

        ‘agr’, ‘eps’, ‘jpeg’, ‘metafile’, ‘mif’, ‘pdf’, ‘png’, ‘pnm’, ‘postscript’, ‘svg’, ‘x11’

    Notes

    Not all drivers are created equal. For caveats that apply to some of these formats see the Grace documentation.

  `SetView`(self, *args, **kwargs)

    Shortcut for sending the command directly to the appropriate graceGraph object see below

    this sets the viewport coords so they are available later for translating string and line coords.

    Parameters
      xmin,xmax,ymin,ymaxfloat

        view range

      aspect_scaledbool

        aspect

  `aspect_scale`(self, x, y)

    scale view coordinates to that (1,1) fills view, roughly

  `assign_color`(self, idx, rgb, name)

    Assign color to an index including new colors.

    Parameters
      idxint (0..16..)

        Index of color.

      rgbset of integer (0..255)

        RGB color as (0,0,0)

      namestring

        New name of color.

    Notes

    If used indices are changed the corresponding elements using this are changed too. This means changing index 1 (usually black) used for the axes changes axes color.

    More can be used.

    Examples

    Set color 4 to (0, 0, 255) as blue

        assign_color(4, (0,0,255), 'blue')

    Append a list of new colors and use them in plot

        x=np.r_[1:10]
        p=js.grace()
        p.colors.list    # shows actual color list
        NN=40
        clist=np.c_[np.r_[1:NN+1],np.r_[255:0:NN*1j].round(),np.r_[255:0:NN*1j].round(),np.r_[0:255:NN*1j].round()]
        for i,r,g,b in clist:
           p.assign_color(i+15,(r,g,b),'test%.2g' %i)
        for i in np.r_[1:p.colors.len]:
           p.plot(x,x+i,sy=[1,0.7,p.colors.len-i],li=[1,5,i])

    reassign colors

        clist=np.c_[np.r_[1:NN+1],np.r_[0:255:NN*1j].round(),np.r_[255:0:NN*1j].round(),np.r_[0:255:NN*1j].round()]
        for i,r,g,b in clist:
           p.assign_color(i+15,(r,g,b),'test%.2g' %i)

    reassign colors grey scale:

        clist=np.c_[np.r_[1:NN+1],np.r_[0:255:NN*1j].round(),np.r_[0:255:NN*1j].round(),np.r_[0:255:NN*1j].round()]
        for i,r,g,b in clist:
           p.assign_color(i+15,(r,g,b),'test%.2g' %i)

  `clear`(self, *args, **kwargs)

    Shortcut for sending the command to current graceGraph see below

    Clear plot

    Parameters
      sliceslice

        Selects elements to delete. If ommited clear all. e.g. last for elements slice=slice(-4) Dont use slice extensivly as it could mess up.

      holdbool, default 0

        Set/reset to hold lines.

  `close`(self)

    Closes the plot

  `command_args` = ('-nosafe', '-noask')
  `exit`(self)

    Nuke the grace session.

  `focus`(self, graph_index=None, grace_graph=None)

    Direct commands sent to the GracePlot to the appropriate GraceGraph.

    Mostly for backwards compatibility. It is preferable to send the commands directly to the plot:

        p[2].plot(....)

  `grace_command` = 'xmgrace'
  `headless` = False
  `hold`(self, *args, **kwargs)

    Shortcut for sending the command to current graceGraph see below

    Turn on/off overplotting for this graph.

    Call as hold() to toggle, hold(1) to turn on, or hold(0) to turn off. Returns the previous hold setting.

  `is_open`(self)

    Return True if the pipe is not known to have been closed.

  `legend`(self, *args, **kwargs)

    Shortcut for sending the command to current graceGraph

    Place the legend in the plot or update it.

    Parameters
      stringslist of strings,string, default=None

        List of legend strings or one string. If None then self.legend_strings is used. self.legend_strings is build from legend attribute in plot

      offsetint, default 0

        Which legend string to change if strings is single string >0 with offset shifted =<0 starting from last reverse order default 0 names last legend

      x,y: float

        Position of the upper left corner of the box in data coordinates

      boxcolorint

        Color of the legend box lines

      boxpatterninteger

        Pattern of the legend box lines

      boxlinewidthfloat

        Thickness of the line

      boxlinestyle,boxfillcolor,boxfillpatterninteger

        As name says

      fontint

        Is the font used in the legend

      charsizefloat

        Size of the characters

      lengthint

        Length of the box must be an integer

      vgapint

        Vertical space between entries, can be a float

      hgapfloat

        Horizontal spacing in the box can be a float

      invertbool, (True,False)

        Order of entries, either in the order they are entered, or the opposite

      onoffbool

        Show legend or not

      position‘ll’, ‘ur’, ‘ul’, ‘lr’

        Legend position shortcut. Shortcuts for lower left, upper right, upper left, lower right.

  `load_parameter_file`(self, param_file_name)

    load a grace *.par file

  `multi`(self, rows, cols, offset=0.13, hgap=0.1, vgap=0.15)

    Create a grid of graphs with the given number of <rows> and <cols>

    Arrange existing graphs (or add extra if needed) to form an nrows by ncols matrix, leaving offset at each page edge with hgap and vgap relative horizontal and vertical spacings

    Parameters
      rows,colsinteger

        Number of graphs

      offsetfloat

        Offset from edges

      hgap,vgapfloat

        Horizontal, vertical gap between plots

    Notes

    Overmuch graphs are deleted

  `new_graph`(self, **kwargs)

    Add a new graph to plot.

    Parameters
      xmin,xmax,ymin,ymaxfloat; default 0.15,0.95,0.15,0.88

        Position of edges in plot in relative view coordinates

  `plot`(self, *args, **kwargs)

    Shortcut for sending the command directly to the appropriate graceGraph object see below

    Plot data in xmgrace

    e.g. p.plot(data,legend=’description’,symbol=[1,0.5,4],line=[1,2,2],errorbar=[0])

    Parameters
      datasetsdataArray, dataList,numpy array, lists of them

        Several of (comma separated) nonkeyword arguments or as list. If dimension of datasets is one a new Data object is created and plotted see Notes below for error plots.

      symbol,syint, list of float or Symbol object

        - [symbol,size,color,fillcolor,fillpattern] as [1,1,1,-1];

        - single integer to chose symbol eg symbol=3; symbol=0 switches off

        - negative increments from last, non integer repeat last

        - symbol => 0-11 = ◦,☐,♢,▵,◁,▽,▷,+,×,☆,(11 is char)

        - size => size, a number eg 0.5

        - color => int 0-16 = white,black,red,green,blue,ligth green,brown,

            darkgrey,violet,orange,magenta,grey

        - fillcolor=None set color and adds fillpattern=1,

            non-integer syncs to symbol color

        - fillpattern=None 0 empty, 1 full, ….test it

      line,liint, list of float or Line object

        - [linestyle,linewidth,color] as [1,1,’’];

        - negative increments;non integer as ‘’ repeats last

        - single integer to chose line line=1; line=0 switches of

        - linestyle int 1 normal, 2 dotted, 3 dashed, 4 long dashed, 5 dot-dashed

        - linewidth float goes from 0 to 6 in increasing thickness

        - color see symbol color, non-integer syncs to symbol color

      errorbar,erint or list of float or Errorbar object

        - [color,size,linewidth,riserlinewidth] as [1,1,1,1]; no increment, no repeat

        - color int see symbol color, non-integer syncs to symbol color

        - size float default 1.0 ; smaller is 0.5

        - linewidth float default 1.0

        - riserlinewidth float default 1.0

      legend,lestring

        - determines legend for all datasets

        - string replacement: attr name prepended by ‘$’ (eg. ‘$par’) is replaced by value str(par1.flatten()[0]) if possible. $(par) for not unique names

      comment: string

        - string determines comment for all datasets

        - for dataArray: list of attribute values is set as comment to ckeck use dataArray.resumeAttrTxt()

      autoscalebool

        default True, False

      internal_autoscalebool

        default True, False 10% border

      redrawbool

        redraw

    Notes

    Plot types determined by dimension of dataset

    - 1: dataset is type Data instances

        See Data class for possibilities and original documentation.

    - 2: dataset is numpy array; simplified version
        Use slices like data_in_numpyarray[[0,3,2],:] to select columns to plot

          - len(array)= 2 XY

          - len(array)= 3 XYDY

          - len(array)= 4 XYDXDY

    - 3: dataset is dataArray ; simplified version

        - attributes X,Y,eY,eX determine plot type if they exist. So set these before plot by dataset.setColumnIndex(3,4,7)

        - default is 0,1,2 for X,Y,eY, No eX

        - Slicing works too as for arrays.

    For more complex plots use original Data class in 1. Old style plotting needs creation of GracePlot.Data objects like

        d1=Data(x=x,y=y,symbol=GracePlot.Symbol(symbol=circle,fillcolor=red),line=GracePlot.Line(type=none))
        or in short abreviation:
        d1=Data(x=x,y=y,symbol=[-1,2,3,4],line=[1,2,3])
        #plotted sets can be accessed by
        p[0].datasets   as a list of Data objects

    Examples

        tX =np.r_[0:10]
        tY=np.sin(tX)
        data=np.c_[tX,tY,tY*0.05].T
        p=s.grace()                    # open plot
        # plot single column data tX,tY,teY
        p.plot(tX,tY,legend='all 1D data',symbol=3,line=1,errorbar=[0])
        #plot Data with arrray or dataList
        p.plot(data,legend='description',symbol=[1,0.5,4],line=[1,2,2],errorbar=[0])
        p.yaxis(label='whatever / m')  # change y label
        p.legend()                     # show legends

  `redraw`(self, force=False, soon=False)

    Refresh the plot

  `resetlast`(self)

    Resets last used symbols and lines.

    lastline=[1,0,0] lastsymbol=[1,0.5,1,0] lasterror=[0,0,0,0]

  `resize`(self, xdim, ydim)

    Change the page dimensions (in pixel)for plots with fixed size.

    Parameters
      xdim, ydimint

        dimension in pixel

  `resolution` = 300

    resolution of the plot

  `save`(self, filename, size=1012, 760, dpi=300, format=None)

    Save the current plot.

    Parameters
      filenamestring

        If filename has extension this is used instead of format.

      sizetuple 2 x integer

        Size in dots. For PRL and other papers: Figures should be planned for the column width (8.6 cm or 3 3/8 in.)

        > - 506 pixel 150 dpi (ok in powerpoint as png )

        > - 1012 pixel 300 dpi (default)

        > - 2024 pixel 600 dpi (paper ready quality e.g as eps)

      dpiin
        resolution in dots per inch (2.54 cm)

          format : string x11, postscript, eps, pdf, mif, svg, pnm, jpeg, png, metafile

      formatDefault is Grace ‘.agr’ file

        ‘agr’, ‘eps’, ‘jpeg’, ‘metafile’, ‘mif’, ‘pdf’, ‘png’, ‘pnm’, ‘postscript’, ‘svg’, ‘x11’

    Notes

    Not all drivers are created equal. For caveats that apply to some of these formats see the Grace documentation.

  `send_commands`(self, *commands)

    Send a list of commands, and then flush

    Parameters
      commandslist of strings
  `shiftbyfactor`(self, *args, **kwargs)

    Shortcut for sending the command directly to the appropriate graceGraph object see below

    Shift data consecutively by factors

    Consecutively multiply by 2 as 2,4,6,8…. or with power laws.

    Parameters
      xy‘xy’

        Selector for x or y axis or both

      factorfloat

        Shift factor

      repeatfloat default=number of sets in plot

        Repeat number of times the factor 3 -> 2,4,6,2,4,6… for factor=2

      xfactorsarray or list

        Factors as list, overrides factor and repeat

      yfactorsarray or list

        Factors as list,overrides factor and repeat dylist is also shifted

      scale‘log’, other

        If ‘log’ a factor**i is used for logarithmic scale all other factor*i is used

    Notes

    List is

        factor*np.tile(np.r_[1:repeat+1],nSets)  lin scale
        factor**np.tile(np.r_[1:repeat+1],nSets)  log scale

    Create factors manually e.g. by

        np.tile([1,2,3],3)         -->  array([1, 2, 3, 1, 2, 3, 1, 2, 3])
        1.1**np.tile([1,1,2],3)    -->  array([1.1, 1.1, 1.21, 1.1, 1.1, 1.21, 1.1, 1.1, 1.21])
        #for an inverse shifting
        2*np.tile(np.r_[10:1:-1],3)-->  array([20, 18, 16, 14, 12, 10,  8,  6,  4, 20, 18, 16, 14, 12, 10,  8,  6, 4])

  `stacked`(self, number, hshift, vshift, frame=None, yaxis='off', yaxisnumber=0, frametype=0, framepattern=1)

    Creates a stacked chart with shifted graphs in the frame

    Already exsiting graphs are reused, fineadjustement needs to be done by hand.

    Parameters
      numberint

        Number of graphs

      hshiftfloat

        Horizontal shift in viewport coords

      vshiftfloat

        Vertikal shift in viewport coords

      yaxis‘normal’,’opposite’,’both’,default ‘off’

        Where to place the yaxis

      framepatternint

        Frame pattern type; 1 is No frame

      frame[float,float,float,float], default [0.15,0.15,0.9,0.9]

        Frame size in viewport coordinates [0..1]

      yaxisnumberint

        Framenumber where to place yaxis

      frametypeint

        Frametype 0=closed,1=halfopen,2,3,4,5= break at top,bottom,left,right

      framepattern

        0= None, 1=full,…..and so on

    Examples

        p.stacked(10,hshift=0.02,vshift=0.01,yaxis='off')
        p.stacked(10,hshift=-0.015,vshift=-0.01,yaxis='off')

        #create a stacked chart of 10 plots
        # each shifted by hshift,vshift
        #the yaxis is switched off for all except the first
        x=np.r_[0:5:100j]
        p=js.grace()
        p.stacked(10,hshift=0.02,vshift=0.01,yaxis='off')
        #plot some Gaussians
        for i in np.arange(10):p[i].plot(x,(i+1)*np.exp(-((x-2)*3)**2),li=[1,2,i+1],sy=0)
        #choose the same yscale for the data but no ticks for the later plots
        p.g[0].yaxis(min=0,max=10)
        for pp in p.g[1:]:pp.yaxis(min=0,max=10,tick=False)
        #adjusting the scale and the size of the xaxis ticks
        for pp in p:pp.xaxis(tick=[1,1,0.3,0.1])
        p[0].yaxis(tick=[1,1,0.3,0.1])

  `subtitle`(self, *args, **kwargs)

    Shortcut for sending the command to current graceGraph see below

    Sets the graph subtitle

    see title

  `text`(self, *args, **kwargs)

    Writes text to graph at specified position.

    Parameters
      stringstring

        Text to print

      x,y: float

        Coordinates are the cartesian coordinates of x,y axis

      colorint

        Color

      rotfloat

        Rotation angle

      fontint

        Font as defined in default xmgrace plot

      just

        Justification

      charsizefloat

        Charsize

      world_coordsbool

        World coordinates or viewport coordinates

    Notes

    Try in Gui for values.

  `title`(self, *args, **kwargs)

    Shortcut for sending the command to current graceGraph see below

    Sets the graph title.

    Parameters
      titlestring

        Title string

      font

        Font of title

      sizefloat

        Size of title

      colorinteger

        Color of title

  `updateall`(self)

    Update the GUI (graph and set selectors etc) to reflect the current project state

  `write`(self, command)

    Make a graceSession look like a file, and flush after send

  `xaxis`(self, *args, **kwargs)

    Shortcut for sending the command to current graceGraph see below

    Set axis properties

    Parameters
      minfloat

        Minimum axis value

      maxfloat

        Maximum axis value

      scale{‘normal’, ‘logarithmic’, or ‘reciprocal’ or respectively ‘n’,’l’,’r’}

        Sets type of axis

      labelstring or Label object

        Label of the axis; see Label object. If string this is the label string. If list it determines [label string,charsize,place,color] place : ‘normal’,’both’,’opposite’

      invert{True,False}

        Invert axis

      formulagrace equation

        Formula for ticklabel calculation eg. rescaling $t is label -> ‘$t*1e5’

      charsize,sizefloat

        Determines size, default 1

      offsetlist of float

        Determines the position of the normal and opposite axis position

      autotickbool

        Autoticking

      tickTick object or list, False True

        List of [major tick distance , minorticks number,majorsize,minorsize,position] position: ‘normal’,’both’,’opposite’ (first letter is enough) False/True switch Ticks on and off see Tick for more

      ticklabelfloat, list, tickLabel object

        With [format,precision,charsize,placeon] or only charsize format: ‘decimal’,’exponential’,’general’,’power’,’scientific’ precision: integer placeon: ‘normal’,’both’,’opposite’

      barlist or bar object

        See bar object list=[onoff,color,linestyle,linewidth]

  `xlabel`(self, *args, **kwargs)
    Shortcut for sending the command to current graceGraph

      see below

    Convenience function to set the xaxis label

      charsize detemines charsize, default 1

  `xlimit`(self, *args, **kwargs)
    Shortcut for sending the command to current graceGraph

      see below

    Convenience function to set the lower and/or upper bounds of the x-axis.

  `yaxis`(self, *args, **kwargs)

    Shortcut for sending the command to current graceGraph see below

    Set axis properties

    Parameters
      minfloat

        Minimum axis value

      maxfloat

        Maximum axis value

      scale{‘normal’, ‘logarithmic’, or ‘reciprocal’ or respectivly ‘n’,’l’,’r’}

        Sets type of axis

      labelstring or Label object

        Label of the axis; see Label object. If string this is the label string. If list it determines [label string,charsize,place,color] place : ‘normal’,’both’,’opposite’

      invert{True,False}

        Invert axis

      formulagrace equation

        Formula for ticklabel calculation eg. rescaling $t is label -> scaling as $t*1e5

      charsizefloat

        Determines size, default 1

      offsetlist of float

        Determines the position of the normal and opposite axis position

      autotickbool

        Autoticking

      tickTick object or list, False True

        List of [major tick distance , minorticks number,majorsize,minorsize,position] position as one of ‘normal’,’both’,’opposite’ (first letter is enough) False True switch Ticks on and off see Tick for more

      ticklabelfloat, list, tickLabel object

        With [format,precision,charsize,placeon] or only charsize format: ‘decimal’,’exponential’,’general’,’power’,’scientific’ precision : integer placeon : ‘normal’,’both’,’opposite’

      barlist or bar object

        See bar object list=[onoff,color,linestyle,linewidth]

  `ylabel`(self, *args, **kwargs)
    Shortcut for sending the command to current graceGraph

      see below

    Convenience function to set the yaxis label

  `ylimit`(self, *args, **kwargs)
    Shortcut for sending the command to current graceGraph

      see below

    Convenience function to set the lower and/or upper bounds of the y-axis.

class `jscatter.graceplot.` `Label`(string=None, layout=None, place=None, charsize=None, font=None, color=None, axis=None)

  Bases: `object`

  Used for labels of the x-axis and y-axis

  `output`(self, axis)

    list output to sent to grace

class `jscatter.graceplot.` `Line`(type=None, linestyle=None, linewidth=None, color=None, pattern=None, baselinetype=None, baseline=None, dropline=None)

  Bases: `object`

  Line objekt

  Parameters
    type: int

      0 None; 1 straigth; 2 left_stairs; 3 right_stairs; 4 Segments; 5 3-Segments

    linestyleint

      1 is normal; 2 is dotted; 3 is dashed; 4 is long dashed; 5 is dot-dashed

    linewidthfloat

      goes from 0 to 6 in increasing thickness

    colorint

      color

    patternint

      fill pattern 1 is solid, 0 is None, there are about 24 choices as dotted, dashed, squared.

    baselineint

      show baseline

    baselinetypeint

      0 Zero; 1 set min: 2 set max; 3 graph min: 4 graph max; 5 set average

    dropline0,1

      drop line to baseline

  `output`(self, dataset)

    list output to sent to grace

class `jscatter.graceplot.` `Symbol`(type=None, symbol=None, size=None, color=1, pattern=None, linewidth=None, linestyle=None, filltype=None, fillrule=None, fillcolor=None, fillpattern=None, char=None, charfont=None, skip=None, annotation=None, errorbar=None)

  Bases: `object`

  Symbol object

  Parameters
    typeNone,’xy’,’xydy’,’xydxdy’,….,’bar’ ==> 0, 1, 2, 3, ….. 0

      None is automatic determination inside grace

    symbol(0..11)

      0 None, 1 circle, 2 square, 3 diamond, 4 triangle up, 5 triangle left, 6 triangle down, 7 triangle right, 8 +, 9 x, 10 *, 11 character,

    sizefloat

      Self explanatory, 0.5 is 50 in the GUI

    patternint 0-24

      The pattern of the outline of the symbol, usually it will be 1

    linewidthfloat

      thickness of the outline of the symbol

    linestyleint

      0 None, 1 solid, 2 points, 3 broken line

    fillcolorint

      color the symbol is filled with, by default it is the same as the outline color.

    fillpatternint, 0..24

      pattern of the fill, 1 is solid, 0 is None, there are about 24 choices as dotted, dashed, squared.

  `output`(self, dataset)

    list output to sent to grace

class `jscatter.graceplot.` `Tick`(axis=None, onoff=True, major=None, minorticks=None, inout=None, majorsize=None, majorcolor=None, majorlinewidth=None, majorlinestyle=None, majorgrid=None, minorcolor=None, minorlinewidth=None, minorlinestyle=None, minorgrid=None, minorsize=None, placeon=None, type=None, default=None, TickLabel=None)

  Bases: `object`

  Controls appearence of ticks on an axis.

  Parameters
    onoff :

      is either ‘on’ or ‘off’

    major :

      is the space between ticks?

    minorticks :

      is the number of minorticks between major ticks?

    inout :

      determines if they point ‘in’ or ‘out’ or ‘both’

    majorsize :

      determines how long the major ticks are

    majorlinewidth :

      is how thick the major ticks are

    majorlinestyle :

      is controls the linestle of the ticks and major gridlines

    majorgrid :

      turns the major grid lines ‘on’ or ‘off’

    minorcolor :

      is the color of the minor tick lines

    minorlinewidth :
    minorlinestyle :

      controls the linestle of the ticks and minor gridlines

    minorgrid :

      turns the minor gridlines on

    minorsize :

      is the lengthe of the minor gridlines

    placeon :

      is it is usually set to ‘both’,’normal’,’opposite’

    type :

      is ? it is usually set to ‘auto’

    default :

      is ? a number

  `output`(self, axis)

    list output to sent to grace

class `jscatter.graceplot.` `TickLabel`(axis=None, onoff=True, type=None, prec=None, format=None, append=None, prepend=None, angle=None, placeon=None, skip=None, stagger=None, op=None, sign=None, starttype=None, start=None, stoptype=None, stop=None, charsize=None, font=None, color=None)

  Bases: `object`

  Ticklabels

  Parameters
    onoff‘on’,’off’
    type ‘auto’
    prec
    format :string ,’general’ is default

      decimal,exponential,general,power,scientific

    appendstring

      added to the end of the label

    prependstring

      added to the beginning of the label

    anglefloat

      degrees? of rotation

    placeon‘normal’,’both’,’opposite’

      where to place labels

    skipint which skips some labels somehow
    staggeris an integer that staggers the labels somehow
    op‘bottom’ for x-axis, ‘left’ for y-axis
    sign‘normal’
    starttypestring ‘auto’
    startfloat don;t know what it does
    stoptypestring ‘auto’
    stopfloat purpose?
    charsizefloat for character size
    fontinteger for the font
    colorinteger for the color
  Returns
    TickLabel object
  `output`(self, axis)

    list output to sent to grace

class `jscatter.graceplot.` `createColorTable`

  Bases: `object`

  `assign`(self, idx, rgb, name)
  property `len`
  property `list`
  property `names`

class `jscatter.graceplot.` `fills`

  Bases: `object`

  `none` = 0
  `opaque` = 8
  `solid` = 1

class `jscatter.graceplot.` `frames`

  Bases: `object`

  `breakbottom` = 3
  `breakleft` = 4
  `breakright` = 5
  `breaktop` = 2
  `closed` = 0
  `halfopen` = 1

`jscatter.graceplot.` `inheritDocstringFrom`(cls)

class `jscatter.graceplot.` `lines`

  Bases: `object`

  `dashed` = 3
  `dot_dashed` = 5
  `dotted` = 2
  `long_dashed` = 4
  `none` = 0
  `solid` = 1

`jscatter.graceplot.` `on_off`(flag)

  convert a bool into an xmgrace on/off string

class `jscatter.graceplot.` `symbols`

  Bases: `object`

  `character` = 11
  `circle` = 1
  `cross` = 9
  `diamond` = 3
  `none` = 0
  `plus` = 8
  `square` = 2
  `star` = 10
  `triangle_down` = 6
  `triangle_left` = 5
  `triangle_right` = 7
  `triangle_up` = 4

`jscatter.graceplot.` `test`()