In [1]:
require 'daru/view'
Install the spreadsheet gem version ~>1.1.1 for using spreadsheet functions.

Install the mechanize gem version ~>2.7.5 for using mechanize functions.
Out[1]:
true
In [2]:
Daru::View.plotting_library = :highcharts
Out[2]:
:highcharts
In [3]:
opts = {
      chart: {defaultSeriesType: 'line'},
      title: {
        text: 'Solar Employment Growth by Sector, 2010-2016'
        },

      subtitle: {
          text: 'Source: thesolarfoundation.com'
      },

      yAxis: {
          title: {
              text: 'Number of Employees'
          }
      },
      legend: {
          layout: 'vertical',
          align: 'right',
          verticalAlign: 'middle'
      },

      plotOptions: {
          # this is not working. Find the bug
          # series: {
          #     pointStart: 43934
          # }
      },
    }
line_1 = Daru::View::Plot.new ([])
Out[3]:
#<Daru::View::Plot:0x00000002494e70 @data=[], @options={}, @user_options={}, @adapter=Daru::View::Adapter::HighchartsAdapter, @chart=#<LazyHighCharts::HighChart:0x00000002494d80 @series_data=[{:type=>nil, :name=>nil, :data=>[]}], @options={:title=>{:text=>nil}, :legend=>{:layout=>"vertical", :style=>{}}, :xAxis=>{}, :yAxis=>{:title=>{:text=>nil}, :labels=>{}}, :tooltip=>{:enabled=>true}, :credits=>{:enabled=>false}, :plotOptions=>{:areaspline=>{}}, :chart=>{:defaultSeriesType=>"line", :renderTo=>nil}, :subtitle=>{}}, @html_options={}, @placeholder="coqypflswkg", @user_options={}>>
In [4]:
line_1.chart.options = opts
line_1.chart.series_data = ([{
          name: 'Installation',
          data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
      }, {
          name: 'Manufacturing',
          data: [24916, 24064, 29742, 29851, 32490, 30282, 38121, 40434]
      }, {
          name: 'Sales & Distribution',
          data: [11744, 17722, 16005, 19771, 20185, 24377, 32147, 39387]
      }, {
          name: 'Project Development',
          data: [nil, nil, 7988, 12169, 15112, 22452, 34400, 34227]
      }, {
          name: 'Other',
          data: [12908, 5948, 8105, 11248, 8989, 11816, 18274, 18111]
      }])
line_1.show_in_iruby 
# after saving chart is displayed. Todo: find the bug
Out[4]:
In [5]:
line_2= Daru::View::Plot.new
    # line chart : chart with data-labels
    opts = {
      chart: {
          type: 'line'
      },
      title: {
          text: 'Monthly Average Temperature'
      },
      subtitle: {
          text: 'Source: WorldClimate.com'
      },
      xAxis: {
          categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
      },
      yAxis: {
          title: {
              text: 'Temperature (°C)'
          }
      },
      plotOptions: {
          line: {
              dataLabels: {
                  enabled: true
              },
              enableMouseTracking: false
          }
      },
    }
    series_dt = ([{
          name: 'Tokyo',
          data: [7.0, 6.9, 9.5, 14.5, 18.4, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
      }, {
          name: 'London',
          data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
      }])

line_2.chart.options = opts;
line_2.chart.series_data = series_dt
line_2.show_in_iruby
# after saving chart is displayed. Todo: find the bug
Out[5]:
In [6]:
# problem in this. don't run   
# line chart : chart with data-labels
    opts = {
        chart: {
            zoomType: 'x'
        },
        title: {
            text: 'USD to EUR exchange rate over time'
        },
        subtitle: {
            text: "document.ontouchstart === undefined ?
                    'Click and drag in the plot area to zoom in' : 'Pinch the chart to zoom in'".js_code
        },
        # xAxis: {
        #     type: 'datetime' # for date time in javascript. currently not
        # working
        # },
        yAxis: {
            title: {
                text: 'Exchange rate'
            }
        },
        legend: {
            enabled: false
        },
        plotOptions: {
            area: {
                fillColor: {
                    linearGradient: {
                        x1: 0,
                        y1: 0,
                        x2: 0,
                        y2: 1
                    },
                    # stops: [
                    #     [0, "Highcharts.getOptions().colors[0]".js_code],
                    #     [1, "Highcharts.Color(Highcharts.getOptions().colors[0]).setOpacity(0).get('rgba')".js_code]
                    # ]
                },
                marker: {
                    radius: 2
                },
                # lineWidth: 1,
                states: {
                    hover: {
                        lineWidth: 10
                    }
                },
                threshold: nil
            }
        },
      }
    series_dt = ([{
                type: 'area',
                name: 'USD to EUR',
                data: [
      [201352,0.7695],
      [201353,0.7648],
      [201354,0.7645],
      [201355,0.7638],
      [201356,0.7549],
      [201357,0.7562],
      [201359,0.7574],
      [2013510,0.7543],
      [2013511,0.7510],
      [2013512,0.7498],
    ]
            }])
line_3 = Daru::View::Plot.new
line_3.chart.options = opts;
line_3.chart.series_data = series_dt
line_3.show_in_iruby
# after saving chart is displayed. Todo: find the bug
Out[6]: