require 'daru/view' Daru::View.plotting_library = :googlecharts idx = Daru::Index.new ["Element", "Density", "{ role: \"style\" }" ] data_rows = [ ["Copper", 8.94, "#b87333"], ["Silver", 10.49, "silver"], ["Gold", 19.30, "gold"], ["Platinum", 21.45, "color: #e5e4e2"] ] df_element_density = Daru::DataFrame.rows(data_rows) df_element_density.vectors = idx df_element_density # removing last column. For annotation need some config. # refer : https://developers.google.com/chart/interactive/docs/gallery/columnchart df_element_density.delete_vector "{ role: \"style\" }" col_table = Daru::View::Table.new(df_element_density, height: 300, width: 200) col_table.table col_options = { title: "Density of Precious Metals, in g/cm^3", width: 600, height: 400, bar: {groupWidth: "95%"}, legend: { position: "none" }, type: :column } col_chart = Daru::View::Plot.new(col_table.table, col_options) col_chart.show_in_iruby idx = Daru::Index.new ['Genre', 'Fantasy & Sci Fi', 'Romance', 'Mystery/Crime', 'General', 'Western', 'Literature'] data_rows = [ ['2010', 10, 24, 20, 32, 18, 5], ['2020', 16, 22, 23, 30, 16, 9], ['2030', 28, 19, 29, 30, 12, 13] ] df_stacked = Daru::DataFrame.rows(data_rows) df_stacked.vectors = idx df_stacked col_stacked_table = Daru::View::Table.new(df_stacked, height: 300, width: 700) col_stacked_table.table col_stacked_options = { width: 600, height: 400, legend: { position: 'top', maxLines: 3 }, bar: { groupWidth: '75%' }, isStacked: true, type: :column } col_stacked_chart = Daru::View::Plot.new(col_stacked_table.table, col_stacked_options) col_stacked_chart.show_in_iruby col_stacked_options = { isStacked: true, height: 300, legend: {position: 'top', maxLines: 3}, vAxis: {minValue: 0}, type: :column } col_stacked_chart = Daru::View::Plot.new(col_stacked_table.table, col_stacked_options) col_stacked_chart.show_in_iruby col_stacked_options = { isStacked: 'percent', height: 400, legend: {position: 'top', maxLines: 3}, vAxis: { minValue: 0, ticks: [0, 0.3, 0.6, 0.9, 1] }, type: :column } col_stacked_chart = Daru::View::Plot.new(col_stacked_table.table, col_stacked_options) col_stacked_chart.show_in_iruby idx = Daru::Index.new ['Galaxy', 'Distance', 'Brightness'] data_rows = [ ['Canis Major Dwarf', 8000, 23.3], ['Sagittarius Dwarf', 24000, 4.5], ['Ursa Major II Dwarf', 30000, 14.3], ['Lg. Magellanic Cloud', 50000, 0.9], ['Bootes I', 60000, 13.1] ] df_dualY = Daru::DataFrame.rows(data_rows) df_dualY.vectors = idx df_dualY col_dualY_table = Daru::View::Table.new(df_dualY, height: 300, width: 700) col_dualY_table.table col_dualY_options = { chart: { title: 'Nearby galaxies', subtitle: 'distance on the left, brightness on the right' }, # series: { # 0: { axis: 'distance' }, # Bind series 0 to an axis named 'distance'. # 1: { axis: 'brightness' } # Bind series 1 to an axis named 'brightness'. # }, # axes: { # y: { # distance: {label: 'parsecs'}, # Left y-axis. # brightness: {side: 'right', label: 'apparent magnitude'} # Right y-axis. # } # } type: :column } col_dualY_chart = Daru::View::Plot.new(col_dualY_table.table, col_dualY_options) col_dualY_chart.show_in_iruby col_dualY_options = { width: 900, # Fixme: below line not working. expecting : # https://developers.google.com/chart/interactive/docs/gallery/columnchart # series: { # 0: {targetAxisIndex: 0}, # 1: {targetAxisIndex: 1} # }, title: 'Nearby galaxies - distance on the left, brightness on the right', # vAxes: { # # Adds titles to each axis. # 0: {title: 'parsecs'}, # 1: {title: 'apparent magnitude'} # } type: :column } col_dualY_chart = Daru::View::Plot.new(col_dualY_table.table, col_dualY_options) col_dualY_chart.show_in_iruby