charty 0.2.6 → 0.2.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/charty.gemspec +2 -1
- data/examples/bar_plot.rb +19 -0
- data/examples/box_plot.rb +17 -0
- data/examples/scatter_plot.rb +17 -0
- data/images/penguins_body_mass_g_flipper_length_mm_species_scatter_plot.png +0 -0
- data/images/penguins_body_mass_g_flipper_length_mm_species_sex_scatter_plot.png +0 -0
- data/images/penguins_species_body_mass_g_bar_plot_h.png +0 -0
- data/images/penguins_species_body_mass_g_bar_plot_v.png +0 -0
- data/images/penguins_species_body_mass_g_box_plot_h.png +0 -0
- data/images/penguins_species_body_mass_g_box_plot_v.png +0 -0
- data/images/penguins_species_body_mass_g_sex_bar_plot_v.png +0 -0
- data/images/penguins_species_body_mass_g_sex_box_plot_v.png +0 -0
- data/lib/charty.rb +2 -0
- data/lib/charty/backends/plotly.rb +127 -24
- data/lib/charty/backends/plotly_helpers/html_renderer.rb +203 -0
- data/lib/charty/backends/plotly_helpers/notebook_renderer.rb +89 -0
- data/lib/charty/backends/plotly_helpers/plotly_renderer.rb +121 -0
- data/lib/charty/backends/pyplot.rb +74 -0
- data/lib/charty/backends/unicode_plot.rb +9 -9
- data/lib/charty/cache_dir.rb +27 -0
- data/lib/charty/iruby_helper.rb +18 -0
- data/lib/charty/plot_methods.rb +82 -6
- data/lib/charty/plotters.rb +3 -0
- data/lib/charty/plotters/abstract_plotter.rb +56 -16
- data/lib/charty/plotters/bar_plotter.rb +39 -0
- data/lib/charty/plotters/categorical_plotter.rb +9 -1
- data/lib/charty/plotters/distribution_plotter.rb +180 -0
- data/lib/charty/plotters/histogram_plotter.rb +244 -0
- data/lib/charty/plotters/line_plotter.rb +38 -5
- data/lib/charty/plotters/scatter_plotter.rb +4 -2
- data/lib/charty/statistics.rb +9 -0
- data/lib/charty/table.rb +30 -23
- data/lib/charty/table_adapters/base_adapter.rb +88 -0
- data/lib/charty/table_adapters/daru_adapter.rb +41 -1
- data/lib/charty/table_adapters/hash_adapter.rb +59 -1
- data/lib/charty/table_adapters/pandas_adapter.rb +49 -1
- data/lib/charty/vector.rb +29 -1
- data/lib/charty/vector_adapters.rb +16 -0
- data/lib/charty/vector_adapters/pandas_adapter.rb +10 -1
- data/lib/charty/version.rb +1 -1
- metadata +39 -15
data/lib/charty/vector.rb
CHANGED
@@ -51,6 +51,32 @@ module Charty
|
|
51
51
|
|
52
52
|
def_delegators :adapter, :mean, :stdev
|
53
53
|
|
54
|
+
def_delegators :adapter, :scale, :scale_inverse
|
55
|
+
|
56
|
+
def scale(method)
|
57
|
+
case method
|
58
|
+
when :linear
|
59
|
+
self
|
60
|
+
when :log
|
61
|
+
adapter.log_scale(method)
|
62
|
+
else
|
63
|
+
raise ArgumentError,
|
64
|
+
"Invalid scaling method: %p" % method
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def scale_inverse(method)
|
69
|
+
case method
|
70
|
+
when :linear
|
71
|
+
self
|
72
|
+
when :log
|
73
|
+
adapter.inverse_log_scale(method)
|
74
|
+
else
|
75
|
+
raise ArgumentError,
|
76
|
+
"Invalid scaling method: %p" % method
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
54
80
|
# TODO: write test
|
55
81
|
def categorical_order(order=nil)
|
56
82
|
if order.nil?
|
@@ -59,7 +85,9 @@ module Charty
|
|
59
85
|
order = categories
|
60
86
|
else
|
61
87
|
order = unique_values.compact
|
62
|
-
|
88
|
+
if numeric?
|
89
|
+
order.sort_by! {|x| Util.missing?(x) ? Float::INFINITY : x }
|
90
|
+
end
|
63
91
|
end
|
64
92
|
order.compact!
|
65
93
|
end
|
@@ -99,6 +99,22 @@ module Charty
|
|
99
99
|
def stdev(population: false)
|
100
100
|
Statistics.stdev(data, population: population)
|
101
101
|
end
|
102
|
+
|
103
|
+
def log_scale(method)
|
104
|
+
Charty::Vector.new(
|
105
|
+
self.map {|x| Math.log10(x) },
|
106
|
+
index: index,
|
107
|
+
name: name
|
108
|
+
)
|
109
|
+
end
|
110
|
+
|
111
|
+
def inverse_log_scale(method)
|
112
|
+
Charty::Vector.new(
|
113
|
+
self.map {|x| 10.0 ** x },
|
114
|
+
index: index,
|
115
|
+
name: name
|
116
|
+
)
|
117
|
+
end
|
102
118
|
end
|
103
119
|
|
104
120
|
module NameSupport
|
@@ -152,7 +152,8 @@ module Charty
|
|
152
152
|
group_keys = grouper.unique.to_a
|
153
153
|
groups = data.groupby(grouper)
|
154
154
|
group_keys.map {|g|
|
155
|
-
|
155
|
+
g_vals = groups.get_group(g) rescue []
|
156
|
+
[g, Charty::Vector.new(g_vals)]
|
156
157
|
}.to_h
|
157
158
|
when Charty::Vector
|
158
159
|
case grouper.adapter
|
@@ -194,6 +195,14 @@ module Charty
|
|
194
195
|
q = q.map {|x| x / 100.0 }
|
195
196
|
data.quantile(q)
|
196
197
|
end
|
198
|
+
|
199
|
+
def log_scale(method)
|
200
|
+
Charty::Vector.new(Numpy.log10(data))
|
201
|
+
end
|
202
|
+
|
203
|
+
def inverse_log_scale(method)
|
204
|
+
Charty::Vector.new(Numpy.power(10, data))
|
205
|
+
end
|
197
206
|
end
|
198
207
|
end
|
199
208
|
end
|
data/lib/charty/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: charty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- youchan
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date: 2021-
|
13
|
+
date: 2021-08-18 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: red-colors
|
@@ -26,6 +26,20 @@ dependencies:
|
|
26
26
|
- - ">="
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
version: 0.3.0
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: red-datasets
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: 0.1.2
|
36
|
+
type: :runtime
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 0.1.2
|
29
43
|
- !ruby/object:Gem::Dependency
|
30
44
|
name: red-palette
|
31
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -125,21 +139,21 @@ dependencies:
|
|
125
139
|
- !ruby/object:Gem::Version
|
126
140
|
version: '0'
|
127
141
|
- !ruby/object:Gem::Dependency
|
128
|
-
name:
|
142
|
+
name: daru
|
129
143
|
requirement: !ruby/object:Gem::Requirement
|
130
144
|
requirements:
|
131
145
|
- - ">="
|
132
146
|
- !ruby/object:Gem::Version
|
133
|
-
version: 0
|
147
|
+
version: '0'
|
134
148
|
type: :development
|
135
149
|
prerelease: false
|
136
150
|
version_requirements: !ruby/object:Gem::Requirement
|
137
151
|
requirements:
|
138
152
|
- - ">="
|
139
153
|
- !ruby/object:Gem::Version
|
140
|
-
version: 0
|
154
|
+
version: '0'
|
141
155
|
- !ruby/object:Gem::Dependency
|
142
|
-
name:
|
156
|
+
name: matrix
|
143
157
|
requirement: !ruby/object:Gem::Requirement
|
144
158
|
requirements:
|
145
159
|
- - ">="
|
@@ -153,7 +167,7 @@ dependencies:
|
|
153
167
|
- !ruby/object:Gem::Version
|
154
168
|
version: '0'
|
155
169
|
- !ruby/object:Gem::Dependency
|
156
|
-
name:
|
170
|
+
name: activerecord
|
157
171
|
requirement: !ruby/object:Gem::Requirement
|
158
172
|
requirements:
|
159
173
|
- - ">="
|
@@ -167,7 +181,7 @@ dependencies:
|
|
167
181
|
- !ruby/object:Gem::Version
|
168
182
|
version: '0'
|
169
183
|
- !ruby/object:Gem::Dependency
|
170
|
-
name:
|
184
|
+
name: sqlite3
|
171
185
|
requirement: !ruby/object:Gem::Requirement
|
172
186
|
requirements:
|
173
187
|
- - ">="
|
@@ -181,33 +195,33 @@ dependencies:
|
|
181
195
|
- !ruby/object:Gem::Version
|
182
196
|
version: '0'
|
183
197
|
- !ruby/object:Gem::Dependency
|
184
|
-
name:
|
198
|
+
name: iruby
|
185
199
|
requirement: !ruby/object:Gem::Requirement
|
186
200
|
requirements:
|
187
201
|
- - ">="
|
188
202
|
- !ruby/object:Gem::Version
|
189
|
-
version:
|
203
|
+
version: 0.7.0
|
190
204
|
type: :development
|
191
205
|
prerelease: false
|
192
206
|
version_requirements: !ruby/object:Gem::Requirement
|
193
207
|
requirements:
|
194
208
|
- - ">="
|
195
209
|
- !ruby/object:Gem::Version
|
196
|
-
version:
|
210
|
+
version: 0.7.0
|
197
211
|
- !ruby/object:Gem::Dependency
|
198
|
-
name:
|
212
|
+
name: csv
|
199
213
|
requirement: !ruby/object:Gem::Requirement
|
200
214
|
requirements:
|
201
215
|
- - ">="
|
202
216
|
- !ruby/object:Gem::Version
|
203
|
-
version: 0
|
217
|
+
version: '0'
|
204
218
|
type: :development
|
205
219
|
prerelease: false
|
206
220
|
version_requirements: !ruby/object:Gem::Requirement
|
207
221
|
requirements:
|
208
222
|
- - ">="
|
209
223
|
- !ruby/object:Gem::Version
|
210
|
-
version: 0
|
224
|
+
version: '0'
|
211
225
|
description: Visualizing your data in a simple way.
|
212
226
|
email:
|
213
227
|
- youchan01@gmail.com
|
@@ -232,6 +246,8 @@ files:
|
|
232
246
|
- charty.gemspec
|
233
247
|
- examples/Gemfile
|
234
248
|
- examples/active_record.ipynb
|
249
|
+
- examples/bar_plot.rb
|
250
|
+
- examples/box_plot.rb
|
235
251
|
- examples/daru.ipynb
|
236
252
|
- examples/iris_dataset.ipynb
|
237
253
|
- examples/nmatrix.ipynb
|
@@ -270,6 +286,7 @@ files:
|
|
270
286
|
- examples/sample_images/subplot_pyplot.png
|
271
287
|
- examples/sample_pyplot.ipynb
|
272
288
|
- examples/sample_rubyplot.ipynb
|
289
|
+
- examples/scatter_plot.rb
|
273
290
|
- images/design_concept.png
|
274
291
|
- images/penguins_body_mass_g_flipper_length_mm_scatter_plot.png
|
275
292
|
- images/penguins_body_mass_g_flipper_length_mm_species_scatter_plot.png
|
@@ -287,11 +304,16 @@ files:
|
|
287
304
|
- lib/charty/backends/google_charts.rb
|
288
305
|
- lib/charty/backends/gruff.rb
|
289
306
|
- lib/charty/backends/plotly.rb
|
307
|
+
- lib/charty/backends/plotly_helpers/html_renderer.rb
|
308
|
+
- lib/charty/backends/plotly_helpers/notebook_renderer.rb
|
309
|
+
- lib/charty/backends/plotly_helpers/plotly_renderer.rb
|
290
310
|
- lib/charty/backends/pyplot.rb
|
291
311
|
- lib/charty/backends/rubyplot.rb
|
292
312
|
- lib/charty/backends/unicode_plot.rb
|
313
|
+
- lib/charty/cache_dir.rb
|
293
314
|
- lib/charty/dash_pattern_generator.rb
|
294
315
|
- lib/charty/index.rb
|
316
|
+
- lib/charty/iruby_helper.rb
|
295
317
|
- lib/charty/layout.rb
|
296
318
|
- lib/charty/linspace.rb
|
297
319
|
- lib/charty/plot_methods.rb
|
@@ -302,7 +324,9 @@ files:
|
|
302
324
|
- lib/charty/plotters/box_plotter.rb
|
303
325
|
- lib/charty/plotters/categorical_plotter.rb
|
304
326
|
- lib/charty/plotters/count_plotter.rb
|
327
|
+
- lib/charty/plotters/distribution_plotter.rb
|
305
328
|
- lib/charty/plotters/estimation_support.rb
|
329
|
+
- lib/charty/plotters/histogram_plotter.rb
|
306
330
|
- lib/charty/plotters/line_plotter.rb
|
307
331
|
- lib/charty/plotters/random_support.rb
|
308
332
|
- lib/charty/plotters/relational_plotter.rb
|
@@ -348,7 +372,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
348
372
|
- !ruby/object:Gem::Version
|
349
373
|
version: '0'
|
350
374
|
requirements: []
|
351
|
-
rubygems_version: 3.2.
|
375
|
+
rubygems_version: 3.2.23
|
352
376
|
signing_key:
|
353
377
|
specification_version: 4
|
354
378
|
summary: Visualizing your data in a simple way.
|