require 'daru/view'

Daru::View.plotting_library = :highcharts

   # combo-dual-axes/
    opts = {
      chart: {
          zoomType: 'xy'
      },
      title: {
          text: 'Average Monthly Temperature and Rainfall in Tokyo'
      },
      subtitle: {
          text: 'Source: WorldClimate.com'
      },
      xAxis: [{
          categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
              'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
          crosshair: true
      }],
      yAxis: [{ # Primary yAxis
          labels: {
              format: '{value}°C',
              style: {
                  color: "Highcharts.getOptions().colors[1]".js_code
              }
          },
          title: {
              text: 'Temperature',
              style: {
                  color: "Highcharts.getOptions().colors[1]".js_code
              }
          }
      }, { # Secondary yAxis
          title: {
              text: 'Rainfall',
              style: {
                  color: "Highcharts.getOptions().colors[0]".js_code
              }
          },
          labels: {
              format: '{value} mm',
              style: {
                  color: "Highcharts.getOptions().colors[0]".js_code
              }
          },
          opposite: true
      }],
      tooltip: {
          shared: true
      },
      legend: {
          layout: 'vertical',
          align: 'left',
          x: 120,
          verticalAlign: 'top',
          y: 100,
          floating: true,
          backgroundColor: "(Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF'".js_code
      },

    }

    series_dt = [
      {
        name: 'Rainfall',
        type: 'column',
        yAxis: 1,
        data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4],
        tooltip: {
            valueSuffix: ' mm'
        }

      }, {
          name: 'Temperature',
          type: 'spline',
          data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6],
          tooltip: {
              valueSuffix: '°C'
          }
      }
    ]

comb_dual_axis = Daru::View::Plot.new
comb_dual_axis.chart.options = opts;
comb_dual_axis.chart.series_data = series_dt
comb_dual_axis.show_in_iruby

   # combo-multi-axes/
    opts = {
    chart: {
        zoomType: 'xy'
    },
    title: {
        text: 'Average Monthly Weather Data for Tokyo'
    },
    subtitle: {
        text: 'Source: WorldClimate.com'
    },
    xAxis: [{
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
            'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
        crosshair: true
    }],
    yAxis: [{ # Primary yAxis
        labels: {
            format: '{value}°C',
            style: {
                color: "Highcharts.getOptions().colors[2]".js_code
            }
        },
        title: {
            text: 'Temperature',
            style: {
                color: "Highcharts.getOptions().colors[2]".js_code
            }
        },
        opposite: true

    }, { # Secondary yAxis
        gridLineWidth: 0,
        title: {
            text: 'Rainfall',
            style: {
                color: "Highcharts.getOptions().colors[0]".js_code
            }
        },
        labels: {
            format: '{value} mm',
            style: {
                color: "Highcharts.getOptions().colors[0]".js_code
            }
        }

    }, { # Tertiary yAxis
        gridLineWidth: 0,
        title: {
            text: 'Sea-Level Pressure',
            style: {
                color: "Highcharts.getOptions().colors[1]".js_code
            }
        },
        labels: {
            format: '{value} mb',
            style: {
                color:" Highcharts.getOptions().colors[1]".js_code
            }
        },
        opposite: true
    }],
    tooltip: {
        shared: true
    },
    legend: {
        layout: 'vertical',
        align: 'left',
        x: 80,
        verticalAlign: 'top',
        y: 55,
        floating: true,
        backgroundColor: "(Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF'".js_code
    },
  }

    series_dt = [
    {
        name: 'Rainfall',
        type: 'column',
        yAxis: 1,
        data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4],
        tooltip: {
            valueSuffix: ' mm'
        }

    }, {
        name: 'Sea-Level Pressure',
        type: 'spline',
        yAxis: 2,
        data: [1016, 1016, 1015.9, 1015.5, 1012.3, 1009.5, 1009.6, 1010.2, 1013.1, 1016.9, 1018.2, 1016.7],
        marker: {
            enabled: false
        },
        dashStyle: 'shortdot',
        tooltip: {
            valueSuffix: ' mb'
        }

    }, {
        name: 'Temperature',
        type: 'spline',
        data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6],
        tooltip: {
            valueSuffix: ' °C'
        }
    }
    ]

comb_multi_axis = Daru::View::Plot.new
comb_multi_axis.chart.options = opts;
comb_multi_axis.chart.series_data = series_dt
comb_multi_axis.show_in_iruby

    # combo-regression
    opts = {
      chart: {},
      xAxis: {
          min: -0.5,
          max: 5.5
      },
      yAxis: {
          min: 0
      },
      title: {
          text: 'Scatter plot with regression line'
      },
    }

    series_dt = [
      {
          type: 'line',
          name: 'Regression Line',
          data: [[0, 1.11], [5, 4.51]],
          marker: {
              enabled: false
          },
          states: {
              hover: {
                  lineWidth: 0
              }
          },
          enableMouseTracking: false
      }, {
          type: 'scatter',
          name: 'Observations',
          data: [1, 1.5, 2.8, 3.5, 3.9, 4.2],
          marker: {
              radius: 4
          }
      }
    ]


comb_regr = Daru::View::Plot.new
comb_regr.chart.options = opts;
comb_regr.chart.series_data = series_dt
comb_regr.show_in_iruby