require 'daru/view'

Daru::View.plotting_library = :googlecharts

idx = Daru::Index.new ['Dinosaur', 'Length']
data_rows = [
  ['Acrocanthosaurus (top-spined lizard)', 12.2],
          ['Albertosaurus (Alberta lizard)', 9.1],
          ['Allosaurus (other lizard)', 12.2],
          ['Apatosaurus (deceptive lizard)', 22.9],
          ['Archaeopteryx (ancient wing)', 0.9],
          ['Argentinosaurus (Argentina lizard)', 36.6],
          ['Baryonyx (heavy claws)', 9.1],
          ['Brachiosaurus (arm lizard)', 30.5],
          ['Ceratosaurus (horned lizard)', 6.1],
          ['Coelophysis (hollow form)', 2.7],
          ['Compsognathus (elegant jaw)', 0.9],
          ['Deinonychus (terrible claw)', 2.7],
          ['Diplodocus (double beam)', 27.1],
          ['Dromicelomimus (emu mimic)', 3.4],
          ['Gallimimus (fowl mimic)', 5.5],
          ['Mamenchisaurus (Mamenchi lizard)', 21.0],
          ['Megalosaurus (big lizard)', 7.9],
          ['Microvenator (small hunter)', 1.2],
          ['Ornithomimus (bird mimic)', 4.6],
          ['Oviraptor (egg robber)', 1.5],
          ['Plateosaurus (flat lizard)', 7.9],
          ['Sauronithoides (narrow-clawed lizard)', 2.0],
          ['Seismosaurus (tremor lizard)', 45.7],
          ['Spinosaurus (spiny lizard)', 12.2],
          ['Supersaurus (super lizard)', 30.5],
          ['Tyrannosaurus (tyrant lizard)', 15.2],
          ['Ultrasaurus (ultra lizard)', 30.5],
          ['Velociraptor (swift robber)', 1.8]
]
df_dino_length = Daru::DataFrame.rows(data_rows)
df_dino_length.vectors = idx
df_dino_length

histo_table = Daru::View::Table.new(df_dino_length, height: 300, width: 200)
histo_table.show_in_iruby

histo_options = {
  title: 'Lengths of dinosaurs, in meters',
  legend: { position: 'none' },
   type: :histogram,
  height: 400
}
histo_chart = Daru::View::Plot.new(histo_table, histo_options)
histo_chart.show_in_iruby

histo_options = {
  title: 'Lengths of dinosaurs, in meters',
  colors: ['#e7711c'],
    histogram: { lastBucketPercentile: 5 },
    vAxis: { scaleType: 'mirrorLog' },
   type: :histogram,
  height: 400
}
histo_chart = Daru::View::Plot.new(histo_table, histo_options)
histo_chart.show_in_iruby

histo_options = {
  title: 'Lengths of dinosaurs, in meters',
  colors: ['#e7711c'],
    histogram: { bucketSize: 10000000 },
   type: :histogram,
  height: 400
}
histo_chart = Daru::View::Plot.new(histo_table, histo_options)
histo_chart.show_in_iruby

tick = Array df_dino_length['Length'].sort.uniq

histo_options = {
  title: 'Lengths of dinosaurs, in meters',
   colors: ['#4285F4'],

    chartArea: { width: 401 },
    hAxis: {
      ticks: tick
    },
    bar: { gap: 0 },

    histogram: {
      bucketSize: 0.02,
      maxNumBuckets: 200,
      minValue: -1,
      maxValue: 1
    },
   type: :histogram,
  height: 400
}
histo_chart = Daru::View::Plot.new(histo_table, histo_options)
histo_chart.show_in_iruby

idx = Daru::Index.new ['Quarks', 'Leptons', 'Gauge Bosons', 'Scalar Bosons']
data_rows = [
    [2.0/3, -1, 0, 0],
    [2/3.0, -1, 0, nil],
    [2/3.0, -1, 0, nil],
    [-1.0/3, 0, 1, nil],
    [-1/3.0, 0, -1, nil],
    [-1.0/3, 0, nil, nil],
    [-1.0/3, 0, nil, nil]
  ]
df_subatomic = Daru::DataFrame.rows(data_rows)
df_subatomic.vectors = idx
df_subatomic

histo_multiple_options = {
  title: 'Charges of subatomic particles',
    legend: { position: 'top', maxLines: 2 },
    colors: ['#5C3292', '#1A8763', '#871B47', '#999999'],
    interpolateNulls: false,
  type: :histogram,
  height: 400
}
histo_multiple_chart = Daru::View::Plot.new(df_subatomic, histo_multiple_options)
histo_multiple_chart.show_in_iruby