Skip to content

Commit c0794d8

Browse files
committed
take title for plot from Daru::DataFrame
1 parent 4594255 commit c0794d8

File tree

2 files changed

+29
-9
lines changed

2 files changed

+29
-9
lines changed

lib/gnuplotrb/plot.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,7 @@ def parse_datasets_array(datasets)
284284
when Hamster::Vector
285285
datasets[0]
286286
when (defined?(Daru) ? Daru::DataFrame : nil)
287+
set_name_from_daru_dataframe(datasets[0])
287288
Hamster::Vector.new(datasets[0].map { |ds| dataset_from_any(ds) })
288289
else
289290
Hamster::Vector.new(datasets.map { |ds| dataset_from_any(ds) })
@@ -295,5 +296,9 @@ def parse_datasets_array(datasets)
295296
def new_with_options(options)
296297
self.class.new(@datasets, options)
297298
end
299+
300+
def set_name_from_daru_dataframe(dataframe)
301+
self.title = dataframe.name
302+
end
298303
end
299304
end

spec/plot_spec.rb

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,6 @@
1616
@title = 'Awesome spec'
1717
@formula = %w(sin(x) cos(x) exp(-x))
1818
@options = { title: @title, term: 'dumb' }
19-
@df = Daru::DataFrame.new(
20-
Build: [312, 630, 315, 312],
21-
Test: [525, 1050, 701, 514],
22-
Deploy: [215, 441, 370, 220]
23-
)
2419
end
2520

2621
it 'should be created out of sequence of datasets' do
@@ -38,10 +33,30 @@
3833
expect(plot.title).to eql(@title)
3934
end
4035

41-
it 'should be created out of Daru::DataFrame' do
42-
p = Plot.new(@df)
43-
expect(p).to be_an_instance_of(Plot)
44-
expect(p.datasets.size).to be_eql(3)
36+
context 'creation out of Daru::DataFrame' do
37+
let(:df) do
38+
Daru::DataFrame.new(
39+
{
40+
Build: [312, 630, 315, 312],
41+
Test: [525, 1050, 701, 514],
42+
Deploy: [215, 441, 370, 220]
43+
},
44+
index: [0, 1, 2, 3],
45+
name: 'Dummy DataFrame'
46+
)
47+
end
48+
49+
subject { Plot.new(df) }
50+
51+
it { is_expected.to be_an_instance_of Plot }
52+
53+
it 'creates datasets for each column except index' do
54+
expect(subject.datasets.size).to be 3
55+
end
56+
57+
it 'takes name for plot from DataFrame' do
58+
expect(subject.title).to eql(df.name)
59+
end
4560
end
4661
end
4762

0 commit comments

Comments
 (0)