Note : Examples are taken from daru : http://nbviewer.jupyter.org/github/SciRuby/sciruby-notebooks/blob/master/Data%20Analysis/Plotting/Visualization.ipynb
In [1]:
require 'daru/view'
Out[1]:
In [2]:
Daru::View.plotting_library = :nyaplot
Out[2]:
In [3]:
dv = Daru::Vector.new [:a, :a, :a, :b, :b, :c], type: :category
Out[3]:
In [4]:
bar_graph1 = Daru::View::Plot.new(dv, type: :bar)
Out[4]:
In [5]:
bar_graph1.chart.class
Out[5]:
In [6]:
bar_graph1.show_in_iruby
In [7]:
dv = Daru::Vector.new ['III']*10 + ['II']*5 + ['I']*5, type: :category, categories: ['I', 'II', 'III']
dv.type
Out[7]:
In [8]:
bar_graph2 = Daru::View::Plot.new(dv, type: :bar)
Out[8]:
In [9]:
bar_graph2.class
Out[9]:
In [10]:
bar_graph2.chart.class
Out[10]:
In [11]:
# Nyaplot methods will work.Since #chart is Nyaplot::Plot class object
bar_graph2.chart.x_label 'Cat'
bar_graph2.chart.y_label 'Frequency'
Out[11]:
In [12]:
bar_graph2.chart # or bar_graph2.show_in_iruby
Out[12]:
In [13]:
bar_graph2_per = Daru::View::Plot.new(dv, type: :bar, method: :percentage)
Out[13]:
In [14]:
bar_graph2_per.chart.x_label 'Categories'
bar_graph2_per.chart.y_label 'Percentage (%)'
bar_graph2_per.show_in_iruby
In [15]:
bar_graph2_frac = Daru::View::Plot.new(dv, type: :bar, method: :fraction)
Out[15]:
In [16]:
# bar_graph2_frac.chart.x_label 'Categories'
bar_graph2_frac.chart.y_label 'Fraction'
bar_graph2_frac.show_in_iruby
In [17]:
df = Daru::DataFrame.new({
a: [1, 2, 4, -2, 5, 23, 0],
b: [3, 1, 3, -6, 2, 1, 0],
c: ['I', 'II', 'I', 'III', 'I', 'III', 'II']
})
df.to_category :c
df[:c].type
Out[17]:
In [18]:
bar_graph3 = Daru::View::Plot.new(df, type: :bar, x: :c)
Out[18]:
In [19]:
bar_graph3.show_in_iruby
In [20]:
df = Daru::DataFrame.new({
a: [1, 2, 4, -2, 5, 23, 0],
b: [3, 1, 3, -6, 2, 1, 0],
c: ['I', 'II', 'I', 'III', 'I', 'III', 'II']
})
df.to_category :c
df[:c].type
Out[20]:
In [21]:
scatter_1 = Daru::View::Plot.new(df, type: :scatter, x: :a, y: :b, categorized: {by: :c, method: :color})
Out[21]:
In [22]:
scatter_1.show_in_iruby
In [23]:
scatter_1.chart.xrange [-10, 10]
scatter_1.chart.yrange [-10, 10]
Out[23]:
In [24]:
scatter_2 = Daru::View::Plot.new(df, type: :scatter, x: :a, y: :b, categorized: {by: :c, method: :shape})
scatter_2.show_in_iruby
In [25]:
scatter_2.chart.xrange [-10, 10]
scatter_2.chart.yrange [-10, 10]
Out[25]:
In [26]:
scatter_3 = Daru::View::Plot.new(df, type: :scatter, x: :a, y: :b, categorized: {by: :c, method: :color, color: [:red, :blue, :green]})
scatter_3.show_in_iruby
scatter_2.chart.xrange [-10, 10]
scatter_2.chart.yrange [-10, 10]
Out[26]:
In [27]:
scatter_4 = Daru::View::Plot.new(df, type: :scatter, x: :a, y: :b, categorized: {by: :c, method: :size, size: [300, 600, 900]})
scatter_4.show_in_iruby
scatter_4.chart.xrange [-10, 10]
scatter_4.chart.yrange [-10, 10]
Out[27]:
In [28]:
df = Daru::DataFrame.new({
a: [1, 2, 3, 4, 5, 6, 7, 8, 9],
b: [2, 4, 6, 1, 3, 5, 6, 4, 3],
c: ['I']*3 + ['II']*3 + ['III']*3
})
df.to_category :c
df[:c].type
Out[28]:
In [29]:
line_1 = Daru::View::Plot.new(df, type: :line, x: :a, y: :b, categorized: {by: :c, method: :color})
line_1.show_in_iruby
In [30]:
line_2 = Daru::View::Plot.new(df, type: :line, x: :a, y: :b, categorized: {by: :c, method: :stroke_width})
line_2.show_in_iruby
line_2.chart.xrange [-10, 10]
line_2.chart.yrange [-10, 10]
Out[30]:
In [ ]: