## GogSeries GogSeries — A single data series. |

## Synopsis

                        GogSeries;
    enum                GogSeriesFillType;
    gboolean            gog_series_is_valid                 (GogSeries const *series);
    gboolean            gog_series_has_legend               (GogSeries const *series);
    GOData *            gog_series_get_name                 (GogSeries const *series);
    GogPlot *           gog_series_get_plot                 (GogSeries const *series);
    void                gog_series_set_name                 (GogSeries *series,
                                                             GODataScalar *name_src,
                                                             GError **err);
    void                gog_series_set_dim                  (GogSeries *series,
                                                             int dim_i,
                                                             GOData *val,
                                                             GError **err);
    void                gog_series_set_index                (GogSeries *series,
                                                             int ind,
                                                             gboolean is_manual);
    unsigned            gog_series_num_elements             (GogSeries const *series);
    GList const  	 *    gog_series_get_overrides            (GogSeries const *series);
    GogSeriesFillType   gog_series_get_fill_type            (GogSeries const *series);
    GogSeriesFillType   gog_series_get_fill_type_from_combo (GogSeries const *series,
                                                             GtkComboBox *combo);
    unsigned            gog_series_get_xy_data              (GogSeries const *series,
                                                             double const **x,
                                                             double const **y);
    unsigned            gog_series_get_xyz_data             (GogSeries const *series,
                                                             double const **x,
                                                             double const **y,
                                                             double const **z);
    void                gog_series_lines_use_markers        (GogSeriesLines *lines,
                                                             gboolean use_markers);
    void                gog_series_populate_fill_type_combo (GogSeries const *series,
                                                             GtkComboBox *combo);
    void                gog_series_set_fill_type            (GogSeries *series,
                                                             GogSeriesFillType fill_type);
    GogDataset *        gog_series_get_interpolation_params (GogSeries const *series);
    void                gog_series_lines_stroke             (GogSeriesLines *lines,
                                                             GogRenderer *rend,
                                                             GogViewAllocation const *bbox,
                                                             GOPath *path,
                                                             gboolean invert);
    #define             GOG_SERIES_ACCEPT_TREND_LINE

## Object Hierarchy

      GObject
       +----GogObject
             +----GogStyledObject
                   +----GogSeries

## Implemented Interfaces

GogSeries implements GOStyledObject and GogDataset.

## Properties

      "fill-type"                gchar*                : Read / Write
      "has-legend"               gboolean              : Read / Write
      "interpolation"            gchar*                : Read / Write
      "interpolation-skip-invalid" gboolean              : Read / Write

## Description

A GogSeries represents a data series that can be added to a GogPlot.

## Details

### GogSeries

    typedef struct _GogSeries GogSeries;

### enum GogSeriesFillType

    typedef enum {
    	GOG_SERIES_FILL_TYPE_Y_ORIGIN,
    	GOG_SERIES_FILL_TYPE_X_ORIGIN,
    	GOG_SERIES_FILL_TYPE_BOTTOM,
    	GOG_SERIES_FILL_TYPE_LEFT,
    	GOG_SERIES_FILL_TYPE_TOP,
    	GOG_SERIES_FILL_TYPE_RIGHT,
    	GOG_SERIES_FILL_TYPE_ORIGIN,
    	GOG_SERIES_FILL_TYPE_CENTER,
    	GOG_SERIES_FILL_TYPE_EDGE,
    	GOG_SERIES_FILL_TYPE_SELF,
    	GOG_SERIES_FILL_TYPE_NEXT,
    	GOG_SERIES_FILL_TYPE_INVALID
    } GogSeriesFillType;

### gog_series_is_valid ()

    gboolean            gog_series_is_valid                 (GogSeries const *series);

`series` : | GogSeries
Returns : | the current cached validity. Does not recheck

### gog_series_has_legend ()

    gboolean            gog_series_has_legend               (GogSeries const *series);

`series` : | GogSeries
Returns : | TRUE if the series has a visible legend entry

### gog_series_get_name ()

    GOData *            gog_series_get_name                 (GogSeries const *series);

Gets the _source_ of the name associated with the series. NOTE : this is _NOT_ the actual name.

`series` : | a GogSeries
Returns : | a GODataScalar, without added reference.

### gog_series_get_plot ()

    GogPlot *           gog_series_get_plot                 (GogSeries const *series);

`series` : | GogSeries
Returns : | the possibly NULL plot that contains this series.

### gog_series_set_name ()

    void                gog_series_set_name                 (GogSeries *series,
                                                             GODataScalar *name_src,
                                                             GError **err);

Absorbs a ref to `name_src`.

`series` : | a GogSeries
`name_src` : | a GODataScalar
`err` : | a GError

### gog_series_set_dim ()

    void                gog_series_set_dim                  (GogSeries *series,
                                                             int dim_i,
                                                             GOData *val,
                                                             GError **err);

Absorbs a ref to `val`

`series` : | GogSeries
`dim_i` : | Which dimension
`val` : | GOData
`err` : | optional GError pointer

### gog_series_set_index ()

    void                gog_series_set_index                (GogSeries *series,
                                                             int ind,
                                                             gboolean is_manual);

If `ind` >= 0 attempt to assign the new index. Auto indicies (`is_manual` == FALSE) will not override the current index if it is manual. An `index` < 0, will reset the index to automatic and potentially queue a revaluation of the parent chart's cardinality.

`series` : | GogSeries
`ind` : | >= 0 assigns a new index, < 0 resets to auto
`is_manual` : | gboolean

### gog_series_num_elements ()

    unsigned            gog_series_num_elements             (GogSeries const *series);

`series` : | GogSeries
Returns : | the number of elements in the series

### gog_series_get_overrides ()

    GList const  	 *    gog_series_get_overrides            (GogSeries const *series);

`series` : |
Returns : |

### gog_series_get_fill_type ()

    GogSeriesFillType   gog_series_get_fill_type            (GogSeries const *series);

`series` : |
Returns : |

### gog_series_get_fill_type_from_combo ()

    GogSeriesFillType   gog_series_get_fill_type_from_combo (GogSeries const *series,
                                                             GtkComboBox *combo);

`series` : |
`combo` : |
Returns : |

### gog_series_get_xy_data ()

    unsigned            gog_series_get_xy_data              (GogSeries const *series,
                                                             double const **x,
                                                             double const **y);

`series` : |
`x` : |
`y` : |
Returns : |

### gog_series_get_xyz_data ()

    unsigned            gog_series_get_xyz_data             (GogSeries const *series,
                                                             double const **x,
                                                             double const **y,
                                                             double const **z);

`series` : |
`x` : |
`y` : |
`z` : |
Returns : |

### gog_series_lines_use_markers ()

    void                gog_series_lines_use_markers        (GogSeriesLines *lines,
                                                             gboolean use_markers);

`lines` : |
`use_markers` : |

### gog_series_populate_fill_type_combo ()

    void                gog_series_populate_fill_type_combo (GogSeries const *series,
                                                             GtkComboBox *combo);

`series` : |
`combo` : |

### gog_series_set_fill_type ()

    void                gog_series_set_fill_type            (GogSeries *series,
                                                             GogSeriesFillType fill_type);

`series` : |
`fill_type` : |

### gog_series_get_interpolation_params ()

    GogDataset *        gog_series_get_interpolation_params (GogSeries const *series);

`series` : |
Returns : |

### gog_series_lines_stroke ()

    void                gog_series_lines_stroke             (GogSeriesLines *lines,
                                                             GogRenderer *rend,
                                                             GogViewAllocation const *bbox,
                                                             GOPath *path,
                                                             gboolean invert);

`lines` : |
`rend` : |
`bbox` : |
`path` : |
`invert` : |

### GOG_SERIES_ACCEPT_TREND_LINE

    #define GOG_SERIES_ACCEPT_TREND_LINE 1

## Property Details

### The `"fill-type"` property

      "fill-type"                gchar*                : Read / Write

How to fill the area.

Default value: "invalid"

### The `"has-legend"` property

      "has-legend"               gboolean              : Read / Write

Should the series show up in legends.

Default value: TRUE

### The `"interpolation"` property

      "interpolation"            gchar*                : Read / Write

Type of line interpolation.

Default value: "linear"

### The `"interpolation-skip-invalid"` property

      "interpolation-skip-invalid" gboolean              : Read / Write

Should the series interpolation ignore the invalid data.

Default value: FALSE