charty 0.2.6 → 0.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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.
|