Class: XlsxWriter::Workbook::Chart

Inherits:
Object
  • Object
show all
Defined in:
ext/xlsxwriter/chart.c

Defined Under Namespace

Classes: Axis, Series

Instance Method Summary collapse

Constructor Details

#initialize(workbook, type) ⇒ Object

:nodoc:



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'ext/xlsxwriter/chart.c', line 24

VALUE
chart_init(VALUE self, VALUE workbook, VALUE type) {
  struct chart *ptr;
  struct workbook *wb_ptr;

  Data_Get_Struct(workbook, struct workbook, wb_ptr);
  Data_Get_Struct(self, struct chart, ptr);
  if (wb_ptr && wb_ptr->workbook) {
    ptr->chart = workbook_add_chart(wb_ptr->workbook, NUM2INT(type));
  }

  rb_iv_set(self, "@workbook", workbook);

  return self;
}

Instance Method Details

#add_series([categories,]) ⇒ self

Adds data series to the chart.

Returns:

  • (self)


120
121
122
123
124
125
126
# File 'ext/xlsxwriter/chart.c', line 120

VALUE
chart_add_series_(int argc, VALUE *argv, VALUE self) {
  rb_check_arity(argc, 0, 2);

  VALUE series = rb_funcall(cChartSeries, rb_intern("new"), argc+1, self, argv[0], argv[1]);
  return series;
}

#axis_id_1Object

:nodoc:



270
271
272
273
274
275
# File 'ext/xlsxwriter/chart.c', line 270

VALUE
chart_get_axis_id_1_(VALUE self) {
  struct chart *ptr;
  Data_Get_Struct(self, struct chart, ptr);
  return UINT2NUM(ptr->chart->axis_id_1);
}

#axis_id_1=(val) ⇒ Object

:nodoc:



278
279
280
281
282
283
284
# File 'ext/xlsxwriter/chart.c', line 278

VALUE
chart_set_axis_id_1_(VALUE self, VALUE val) {
  struct chart *ptr;
  Data_Get_Struct(self, struct chart, ptr);
  ptr->chart->axis_id_1 = NUM2UINT(val);
  return val;
}

#axis_id_2Object

:nodoc:



287
288
289
290
291
292
# File 'ext/xlsxwriter/chart.c', line 287

VALUE
chart_get_axis_id_2_(VALUE self) {
  struct chart *ptr;
  Data_Get_Struct(self, struct chart, ptr);
  return UINT2NUM(ptr->chart->axis_id_2);
}

#axis_id_2=(val) ⇒ Object

:nodoc:



295
296
297
298
299
300
301
# File 'ext/xlsxwriter/chart.c', line 295

VALUE
chart_set_axis_id_2_(VALUE self, VALUE val) {
  struct chart *ptr;
  Data_Get_Struct(self, struct chart, ptr);
  ptr->chart->axis_id_2 = NUM2UINT(val);
  return val;
}

#hole_size=(size) ⇒ Object

:nodoc:



259
260
261
262
263
264
265
266
# File 'ext/xlsxwriter/chart.c', line 259

VALUE
chart_set_hole_size_(VALUE self, VALUE size) {
  struct chart *ptr;
  Data_Get_Struct(self, struct chart, ptr);

  chart_set_hole_size(ptr->chart, NUM2UINT(rb_check_to_int(size)));
  return size;
}

#legend_delete_series(series) ⇒ self

Deletes series by 0-based indexes from the chart legend.

chart.legend_delete_series([0, 2])

Returns:

  • (self)


219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
# File 'ext/xlsxwriter/chart.c', line 219

VALUE
chart_legend_delete_series_(VALUE self, VALUE series) {
  series = rb_check_array_type(series);
  const size_t len = RARRAY_LEN(series);
  int16_t series_arr[len+1];
  for (size_t i = 0; i < len; ++i) {
    series_arr[i] = NUM2INT(rb_check_to_int(rb_ary_entry(series, i)));
  }
  series_arr[len] = -1;

  struct chart *ptr;
  Data_Get_Struct(self, struct chart, ptr);
  chart_legend_delete_series(ptr->chart, series_arr);
  return self;
}

#legend_position=(position) ⇒ Object

Sets the chart legend position, one of Chart::{LEGEND_NONE, LEGEND_RIGHT, LEGEND_LEFT, LEGEND_TOP, LEGEND_BOTTOM, LEGEND_OVERLAY_RIGHT, LEGEND_OVERLAY_LEFT}.



189
190
191
192
193
194
195
196
# File 'ext/xlsxwriter/chart.c', line 189

VALUE
chart_legend_set_position_(VALUE self, VALUE pos) {
  struct chart *ptr;
  Data_Get_Struct(self, struct chart, ptr);

  chart_legend_set_position(ptr->chart, NUM2UINT(rb_check_to_int(pos)));
  return pos;
}

#legend_set_font(options) ⇒ self

Sets legend font from options (name, size, bold, italic, underline, rotation, color, baseline).

Returns:

  • (self)


203
204
205
206
207
208
209
210
211
# File 'ext/xlsxwriter/chart.c', line 203

VALUE
chart_legend_set_font_(VALUE self, VALUE opts) {
  struct chart *ptr;
  lxw_chart_font font = val_to_lxw_chart_font(opts);
  Data_Get_Struct(self, struct chart, ptr);

  chart_legend_set_font(ptr->chart, &font);
  return self;
}

#rotation=(rotation) ⇒ Object

:nodoc:



249
250
251
252
253
254
255
256
# File 'ext/xlsxwriter/chart.c', line 249

VALUE
chart_set_rotation_(VALUE self, VALUE rotation) {
  struct chart *ptr;
  Data_Get_Struct(self, struct chart, ptr);

  chart_set_rotation(ptr->chart, NUM2UINT(rb_check_to_int(rotation)));
  return rotation;
}

#style=(style) ⇒ Object

Sets the chart style (integer from 1 to 48, default is 2).



239
240
241
242
243
244
245
246
# File 'ext/xlsxwriter/chart.c', line 239

VALUE
chart_set_style_(VALUE self, VALUE style) {
  struct chart *ptr;
  Data_Get_Struct(self, struct chart, ptr);

  chart_set_style(ptr->chart, NUM2INT(rb_check_to_int(style)));
  return style;
}

#title=(title) ⇒ Object

Sets the chart title.



150
151
152
153
154
155
156
157
158
159
160
161
162
# File 'ext/xlsxwriter/chart.c', line 150

VALUE
chart_title_set_name_(VALUE self, VALUE name) {
  struct chart *ptr;
  Data_Get_Struct(self, struct chart, ptr);

  if (RTEST(name)) {
    chart_title_set_name(ptr->chart, StringValueCStr(name));
  } else {
    chart_title_off(ptr->chart);
  }

  return name;
}

#x_axisChart::Axis

Returns x axis as Chart::Axis

Returns:



132
133
134
135
# File 'ext/xlsxwriter/chart.c', line 132

VALUE
chart_x_axis_(VALUE self) {
  return rb_funcall(cChartAxis, rb_intern("new"), 2, self, ID2SYM(rb_intern("x")));
}

#y_axisChart::Axis

Returns y axis as Chart::Axis

Returns:



141
142
143
144
# File 'ext/xlsxwriter/chart.c', line 141

VALUE
chart_y_axis_(VALUE self) {
  return rb_funcall(cChartAxis, rb_intern("new"), 2, self, ID2SYM(rb_intern("y")));
}