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]:
# used for creating table and charts
Daru::View.plotting_library = :googlecharts
Out[2]:
:googlecharts
In [3]:
data = [
          ['Galaxy', 'Distance', 'Brightness', 'Distance-Galaxy'],
          ['Canis Major Dwarf', 8000, 230.3, 0],
          ['Sagittarius Dwarf', 24000, 4000.5, 0],
          ['Ursa Major II Dwarf', 30000, 1412.3, 0],
          ['Lg. Magellanic Cloud', 50000, 120.9, 0],
          ['Bootes I', 60000, 1223.1, 0]
  ]
user_options = {
  formatters: {
    # ArrowFormat is working on localhost but not working on nbviewer.
    formatter1: {
      type: 'Arrow',
      options: {
        base: 30000
      },
      columns: 1
    },
    formatter2: {
      type: 'Color',
      range: [[1000, 30000, 'red', '#000000'],
              [40000, nil, 'green', 'pink']],
      columns: [1,2]
    },
    formatter3: {
      type: 'Pattern',
      format_string: "{1} - {0}",
      src_cols: [0, 1],
      des_col: 3
    },
    formatter4: {
      type: 'Number',
      options: {prefix: '*'},
      columns: 2
    },
  }
}
table = Daru::View::Table.new(data, {allowHtml: true}, user_options)
table.show_in_iruby
Out[3]:
In [4]:
data = [
          ['Employee', 'Start Date (Long)', 'Start Date (Medium)', 'Start Date (Short)'],
          ['Mike', Date.parse('2007-11-28'), Date.parse('2007-11-28'), Date.parse('2007-11-28')],
          ['Bob', Date.parse('2006-7-16'), Date.parse('2006-7-16'), Date.parse('2006-7-16')],
          ['Alice', Date.parse('2007-9-2'), Date.parse('2007-9-2'), Date.parse('2007-9-2')]
  ]

user_options = {
  formatters: {
    f1: {
      type: 'Date',
      options: {
        formatType: 'long'
      },
      columns: 1
    },
    f2: {
      type: 'Date',
      options: {
        formatType: 'medium'
      },
      columns: 2
    },
    f3: {
      type: 'Date',
      options: {
        formatType: 'short'
      },
      columns: 3
    }
  }
}

table = Daru::View::Table.new(data, {}, user_options)
table.show_in_iruby
Out[4]:
In [5]:
df = Daru::DataFrame.new({b: [11,12,13,14,15], a: [1,2,3,4,5],
      c: [11,22,33,44,55]},
      order: [:a, :b, :c],
      index: [:one, :two, :three, :four, :five])

user_options = {
  formatters: {
    formatter: {
      type: 'Color',
      range: [[1, 3, 'yellow', 'red'],
              [20, 50, 'green', 'pink']],
      columns: [0,2]
    },
    formatter2: {
      type: 'Color',
      range: [[14, 15, 'blue', 'orange']],
      columns: 1
    }
  }
}

# option `allowHtml: true` is necessary to make this work
table = Daru::View::Table.new(df, {allowHtml: true}, user_options)
table.show_in_iruby
Out[5]:
In [6]:
df = Daru::DataFrame.new({b: [11,-12,13,14,-15], a: [-1,2,3,4,5],
      c: [11,22,-33,-44,55]},
      order: [:a, :b, :c],
      index: [:one, :two, :three, :four, :five])

user_options = {
  formatters: {
    formatter: {
      type: 'Number',
      options: {negativeParens: true},
      columns: [0,1,2]
    }
  }
}

table = Daru::View::Table.new(df, {}, user_options)
table.show_in_iruby
Out[6]:
In [7]:
user_options = {
  formatters: {
    formatter: {
      type: 'Pattern',
      format_string: "{0} and {1}",
      src_cols: [0, 1],
      des_col: 2
    }
  }
}

table = Daru::View::Table.new(df, {}, user_options)
table.show_in_iruby
Out[7]:
In [8]:
user_options = {
  formatters: {
    formatter: {
      type: 'Arrow',
      options: {
        base: 0
      },
      columns: 1
    }
  }
}

table = Daru::View::Table.new(df, {}, user_options)
table.show_in_iruby
Out[8]:
In [9]:
data = [
          ['Year', 'Sales', 'Expenses'],
          ['2013',  1000,      400],
          ['2014',  1170,      460],
          ['2015',  660,       1120],
          ['2016',  1030,      540]
  ]
user_options = {
  # Generating wierd bars in IRuby notebook, it is working fine in rails
  formatters: {
    f1: {
      type: 'Bar',
      options: {
        base: 1000,
        width: 120
      },
      columns: 2
    }
  }
}
table = Daru::View::Table.new(data, {allowHtml: true}, user_options)
table.show_in_iruby
Out[9]:
In [ ]: