-
Notifications
You must be signed in to change notification settings - Fork 65
/
Copy pathchart_secondary_axis.rb
executable file
·57 lines (45 loc) · 1.37 KB
/
chart_secondary_axis.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
#######################################################################
#
# A demo of a Line chart with a secondary axis in WriteXLSX.
#
# reverse(c), March 2011, John McNamara, [email protected]
# convert to ruby by Hideo NAKAMURA, [email protected]
#
require 'write_xlsx'
workbook = WriteXLSX.new('chart_secondary_axis.xlsx')
worksheet = workbook.add_worksheet
bold = workbook.add_format(bold: 1)
# Add the worksheet data that the charts will refer to.
headings = %w[Aliens Humans]
data = [
[2, 3, 4, 5, 6, 7],
[10, 40, 50, 20, 10, 50]
]
worksheet.write('A1', headings, bold)
worksheet.write('A2', data)
# Create a new chart object. In this case an embedded chart.
chart = workbook.add_chart(type: 'line', embedded: 1)
# Configure the first series.
chart.add_series(
name: '=Sheet1!$A$1',
values: '=Sheet1!$A$2:$A$7',
y2_axis: 1
)
chart.add_series(
name: '=Sheet1!$B$1',
values: '=Sheet1!$B$2:$B$7'
)
chart.set_legend(position: 'right')
# Add a chart title and some axis labels.
chart.set_title(name: 'Survey results')
chart.set_x_axis(name: 'Days')
chart.set_y_axis(name: 'Population', major_gridlines: { visible: 0 })
chart.set_y2_axis(name: 'Laser wounds')
# Insert the chart into the worksheet (with an offset).
worksheet.insert_chart(
'D2', chart,
x_offset: 25, y_offset: 10
)
workbook.close