d3-charts 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/CHANGELOG.md +3 -0
- data/D3-LICENSE +26 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +92 -0
- data/LICENSE +25 -0
- data/README.md +72 -0
- data/Rakefile +2 -0
- data/app/assets/javascripts/d3.js +9263 -0
- data/app/assets/javascripts/d3.min.js +5 -0
- data/d3-charts.gemspec +21 -0
- data/lib/chart_generators/bar_chart_generator.rb +23 -0
- data/lib/chart_generators/base_generator.rb +76 -0
- data/lib/chart_generators/bubble_chart_generator.rb +11 -0
- data/lib/chart_generators/histogram_generator.rb +11 -0
- data/lib/chart_generators/line_chart_generator.rb +11 -0
- data/lib/chart_generators/pie_chart_generator.rb +11 -0
- data/lib/chart_generators/polar_area_diagram_generator.rb +11 -0
- data/lib/chart_generators/radar_chart_generator.rb +11 -0
- data/lib/chart_generators/streamgraph_generator.rb +11 -0
- data/lib/chart_generators/treemap_generator.rb +11 -0
- data/lib/chart_helpers/common/bar_chart.rb +16 -0
- data/lib/chart_helpers/common/histogram.rb +12 -0
- data/lib/chart_helpers/common/line_chart.rb +11 -0
- data/lib/chart_helpers/common/pie_chart.rb +11 -0
- data/lib/chart_helpers/common_plots/biplot.rb +0 -0
- data/lib/chart_helpers/common_plots/box_plot.rb +0 -0
- data/lib/chart_helpers/common_plots/dot_plot.rb +0 -0
- data/lib/chart_helpers/common_plots/probability_plot.rb +0 -0
- data/lib/chart_helpers/common_plots/scatterplot.rb +0 -0
- data/lib/chart_helpers/field_specific/candlestick_chart.rb +0 -0
- data/lib/chart_helpers/field_specific/kagi_chart.rb +0 -0
- data/lib/chart_helpers/field_specific/open_high_low_close_chart.rb +0 -0
- data/lib/chart_helpers/field_specific/sparkline.rb +0 -0
- data/lib/chart_helpers/less_common/bubble_chart.rb +8 -0
- data/lib/chart_helpers/less_common/polar_area_diagram.rb +8 -0
- data/lib/chart_helpers/less_common/radar_chart.rb +9 -0
- data/lib/chart_helpers/less_common/streamgraph.rb +9 -0
- data/lib/chart_helpers/less_common/treemap.rb +16 -0
- data/lib/chart_helpers/less_common/waterfall_chart.rb +0 -0
- data/lib/chart_helpers/other/control_chart.rb +0 -0
- data/lib/chart_helpers/other/greninger_chart.rb +0 -0
- data/lib/chart_helpers/other/heatmap.rb +0 -0
- data/lib/chart_helpers/other/natal_chart.rb +0 -0
- data/lib/chart_helpers/other/nomogram.rb +0 -0
- data/lib/chart_helpers/other/pareto_chart.rb +0 -0
- data/lib/chart_helpers/other/run_chart.rb +0 -0
- data/lib/chart_helpers/other/strip_chart.rb +0 -0
- data/lib/chart_helpers/other/structure_chart.rb +0 -0
- data/lib/chart_helpers/other/vowel_chart.rb +0 -0
- data/lib/chart_helpers/well_known_named/gantt_chart.rb +0 -0
- data/lib/chart_helpers/well_known_named/nolan_chart.rb +0 -0
- data/lib/chart_helpers/well_known_named/pert_chart.rb +0 -0
- data/lib/chart_helpers/well_known_named/smith_chart.rb +0 -0
- data/lib/chart_templates/css/bubble_chart.css.erb +3 -0
- data/lib/chart_templates/css/histogram.css.erb +19 -0
- data/lib/chart_templates/css/horizontal_bar_chart.css.erb +8 -0
- data/lib/chart_templates/css/line_chart.css.erb +35 -0
- data/lib/chart_templates/css/pie_chart.css.erb +8 -0
- data/lib/chart_templates/css/polar_area_diagram.css.erb +5 -0
- data/lib/chart_templates/css/radar_chart.css.erb +6 -0
- data/lib/chart_templates/css/streamgraph.css.erb +26 -0
- data/lib/chart_templates/css/treemap.css.erb +20 -0
- data/lib/chart_templates/css/vertical_bar_chart.css.erb +23 -0
- data/lib/chart_templates/js/bubble_chart.js.erb +49 -0
- data/lib/chart_templates/js/histogram.js.erb +55 -0
- data/lib/chart_templates/js/horizontal_bar_chart.js.erb +13 -0
- data/lib/chart_templates/js/line_chart.js.erb +60 -0
- data/lib/chart_templates/js/pie_chart.js.erb +44 -0
- data/lib/chart_templates/js/polar_area_diagram.js.erb +184 -0
- data/lib/chart_templates/js/radar_chart.js.erb +299 -0
- data/lib/chart_templates/js/streamgraph.js.erb +161 -0
- data/lib/chart_templates/js/treemap.js.erb +46 -0
- data/lib/chart_templates/js/vertical_bar_chart.js.erb +59 -0
- data/lib/d3-charts.rb +23 -0
- data/lib/d3/charts.rb +3 -0
- data/lib/d3/charts/engine.rb +6 -0
- data/lib/d3/charts/railtie.rb +19 -0
- data/lib/d3/charts/version.rb +5 -0
- metadata +156 -0
@@ -0,0 +1,46 @@
|
|
1
|
+
var margin = {top: 40, right: 10, bottom: 10, left: 10},
|
2
|
+
width = 960 - margin.left - margin.right,
|
3
|
+
height = 500 - margin.top - margin.bottom;
|
4
|
+
|
5
|
+
var color = d3.scale.category20c();
|
6
|
+
|
7
|
+
var treemap = d3.layout.treemap()
|
8
|
+
.size([width, height])
|
9
|
+
.sticky(true)
|
10
|
+
.value(function(d) { return d.size; });
|
11
|
+
|
12
|
+
var div = d3.select("<%= element %>").append("div")
|
13
|
+
.style("position", "relative")
|
14
|
+
.style("width", (width + margin.left + margin.right) + "px")
|
15
|
+
.style("height", (height + margin.top + margin.bottom) + "px")
|
16
|
+
.style("left", margin.left + "px")
|
17
|
+
.style("top", margin.top + "px");
|
18
|
+
|
19
|
+
d3.json("<%= data %>", function(error, root) {
|
20
|
+
var node = div.datum(root).selectAll(".node")
|
21
|
+
.data(treemap.nodes)
|
22
|
+
.enter().append("div")
|
23
|
+
.attr("class", "node")
|
24
|
+
.call(position)
|
25
|
+
.style("background", function(d) { return d.children ? color(d.name) : null; })
|
26
|
+
.text(function(d) { return d.children ? null : d.name; });
|
27
|
+
|
28
|
+
d3.selectAll("input").on("change", function change() {
|
29
|
+
var value = this.value === "count"
|
30
|
+
? function() { return 1; }
|
31
|
+
: function(d) { return d.size; };
|
32
|
+
|
33
|
+
node
|
34
|
+
.data(treemap.value(value).nodes)
|
35
|
+
.transition()
|
36
|
+
.duration(1500)
|
37
|
+
.call(position);
|
38
|
+
});
|
39
|
+
});
|
40
|
+
|
41
|
+
function position() {
|
42
|
+
this.style("left", function(d) { return d.x + "px"; })
|
43
|
+
.style("top", function(d) { return d.y + "px"; })
|
44
|
+
.style("width", function(d) { return Math.max(0, d.dx - 1) + "px"; })
|
45
|
+
.style("height", function(d) { return Math.max(0, d.dy - 1) + "px"; });
|
46
|
+
}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
var margin = {top: 20, right: 20, bottom: 30, left: 40},
|
2
|
+
width = 960 - margin.left - margin.right,
|
3
|
+
height = 500 - margin.top - margin.bottom;
|
4
|
+
|
5
|
+
var x = d3.scale.ordinal()
|
6
|
+
.rangeRoundBands([0, width], .1);
|
7
|
+
|
8
|
+
var y = d3.scale.linear()
|
9
|
+
.range([height, 0]);
|
10
|
+
|
11
|
+
var xAxis = d3.svg.axis()
|
12
|
+
.scale(x)
|
13
|
+
.orient("bottom");
|
14
|
+
|
15
|
+
var yAxis = d3.svg.axis()
|
16
|
+
.scale(y)
|
17
|
+
.orient("left")
|
18
|
+
.ticks(10, "%");
|
19
|
+
|
20
|
+
var svg = d3.select("<%= element %>").append("svg")
|
21
|
+
.attr("width", width + margin.left + margin.right)
|
22
|
+
.attr("height", height + margin.top + margin.bottom)
|
23
|
+
.append("g")
|
24
|
+
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
|
25
|
+
|
26
|
+
d3.tsv("<%= data %>", type, function(error, data) {
|
27
|
+
x.domain(data.map(function(d) { return d.letter; }));
|
28
|
+
y.domain([0, d3.max(data, function(d) { return d.frequency; })]);
|
29
|
+
|
30
|
+
svg.append("g")
|
31
|
+
.attr("class", "x axis")
|
32
|
+
.attr("transform", "translate(0," + height + ")")
|
33
|
+
.call(xAxis);
|
34
|
+
|
35
|
+
svg.append("g")
|
36
|
+
.attr("class", "y axis")
|
37
|
+
.call(yAxis)
|
38
|
+
.append("text")
|
39
|
+
.attr("transform", "rotate(-90)")
|
40
|
+
.attr("y", 6)
|
41
|
+
.attr("dy", ".71em")
|
42
|
+
.style("text-anchor", "end")
|
43
|
+
.text("Frequency");
|
44
|
+
|
45
|
+
svg.selectAll(".bar")
|
46
|
+
.data(data)
|
47
|
+
.enter().append("rect")
|
48
|
+
.attr("class", "bar")
|
49
|
+
.attr("x", function(d) { return x(d.letter); })
|
50
|
+
.attr("width", x.rangeBand())
|
51
|
+
.attr("y", function(d) { return y(d.frequency); })
|
52
|
+
.attr("height", function(d) { return height - y(d.frequency); });
|
53
|
+
|
54
|
+
});
|
55
|
+
|
56
|
+
function type(d) {
|
57
|
+
d.frequency = +d.frequency;
|
58
|
+
return d;
|
59
|
+
}
|
data/lib/d3-charts.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'chart_generators/base_generator'
|
2
|
+
|
3
|
+
require 'chart_generators/bar_chart_generator'
|
4
|
+
require 'chart_generators/histogram_generator'
|
5
|
+
require 'chart_generators/pie_chart_generator'
|
6
|
+
require 'chart_generators/line_chart_generator'
|
7
|
+
require 'chart_generators/bubble_chart_generator'
|
8
|
+
require 'chart_generators/polar_area_diagram_generator'
|
9
|
+
require 'chart_generators/radar_chart_generator'
|
10
|
+
require 'chart_generators/streamgraph_generator'
|
11
|
+
require 'chart_generators/treemap_generator'
|
12
|
+
|
13
|
+
require 'chart_helpers/common/bar_chart'
|
14
|
+
require 'chart_helpers/common/histogram'
|
15
|
+
require 'chart_helpers/common/pie_chart'
|
16
|
+
require 'chart_helpers/common/line_chart'
|
17
|
+
require 'chart_helpers/less_common/bubble_chart'
|
18
|
+
require 'chart_helpers/less_common/polar_area_diagram'
|
19
|
+
require 'chart_helpers/less_common/radar_chart'
|
20
|
+
require 'chart_helpers/less_common/streamgraph'
|
21
|
+
require 'chart_helpers/less_common/treemap'
|
22
|
+
|
23
|
+
require 'd3/charts'
|
data/lib/d3/charts.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
module D3
|
2
|
+
module Charts
|
3
|
+
class Railtie < ::Rails::Railtie
|
4
|
+
initializer "chart_helpers" do
|
5
|
+
# common charts
|
6
|
+
ActionView::Base.send :include, BarChart
|
7
|
+
ActionView::Base.send :include, Histogram
|
8
|
+
ActionView::Base.send :include, PieChart
|
9
|
+
ActionView::Base.send :include, LineChart
|
10
|
+
# less common charts
|
11
|
+
ActionView::Base.send :include, BubbleChart
|
12
|
+
ActionView::Base.send :include, PolarAreaDiagram
|
13
|
+
ActionView::Base.send :include, RadarChart
|
14
|
+
ActionView::Base.send :include, Streamgraph
|
15
|
+
ActionView::Base.send :include, Treemap
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
metadata
ADDED
@@ -0,0 +1,156 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: d3-charts
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Bogdan Malets
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2014-06-05 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: railties
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '3.1'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '3.1'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rails
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '3.1'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '3.1'
|
46
|
+
description: This gem provides view helpers to create d3.js charts easily
|
47
|
+
email:
|
48
|
+
- b.malets@gmail.com
|
49
|
+
executables: []
|
50
|
+
extensions: []
|
51
|
+
extra_rdoc_files: []
|
52
|
+
files:
|
53
|
+
- .gitignore
|
54
|
+
- CHANGELOG.md
|
55
|
+
- D3-LICENSE
|
56
|
+
- Gemfile
|
57
|
+
- Gemfile.lock
|
58
|
+
- LICENSE
|
59
|
+
- README.md
|
60
|
+
- Rakefile
|
61
|
+
- app/assets/javascripts/d3.js
|
62
|
+
- app/assets/javascripts/d3.min.js
|
63
|
+
- d3-charts.gemspec
|
64
|
+
- lib/chart_generators/bar_chart_generator.rb
|
65
|
+
- lib/chart_generators/base_generator.rb
|
66
|
+
- lib/chart_generators/bubble_chart_generator.rb
|
67
|
+
- lib/chart_generators/histogram_generator.rb
|
68
|
+
- lib/chart_generators/line_chart_generator.rb
|
69
|
+
- lib/chart_generators/pie_chart_generator.rb
|
70
|
+
- lib/chart_generators/polar_area_diagram_generator.rb
|
71
|
+
- lib/chart_generators/radar_chart_generator.rb
|
72
|
+
- lib/chart_generators/streamgraph_generator.rb
|
73
|
+
- lib/chart_generators/treemap_generator.rb
|
74
|
+
- lib/chart_helpers/common/bar_chart.rb
|
75
|
+
- lib/chart_helpers/common/histogram.rb
|
76
|
+
- lib/chart_helpers/common/line_chart.rb
|
77
|
+
- lib/chart_helpers/common/pie_chart.rb
|
78
|
+
- lib/chart_helpers/common_plots/biplot.rb
|
79
|
+
- lib/chart_helpers/common_plots/box_plot.rb
|
80
|
+
- lib/chart_helpers/common_plots/dot_plot.rb
|
81
|
+
- lib/chart_helpers/common_plots/probability_plot.rb
|
82
|
+
- lib/chart_helpers/common_plots/scatterplot.rb
|
83
|
+
- lib/chart_helpers/field_specific/candlestick_chart.rb
|
84
|
+
- lib/chart_helpers/field_specific/kagi_chart.rb
|
85
|
+
- lib/chart_helpers/field_specific/open_high_low_close_chart.rb
|
86
|
+
- lib/chart_helpers/field_specific/sparkline.rb
|
87
|
+
- lib/chart_helpers/less_common/bubble_chart.rb
|
88
|
+
- lib/chart_helpers/less_common/polar_area_diagram.rb
|
89
|
+
- lib/chart_helpers/less_common/radar_chart.rb
|
90
|
+
- lib/chart_helpers/less_common/streamgraph.rb
|
91
|
+
- lib/chart_helpers/less_common/treemap.rb
|
92
|
+
- lib/chart_helpers/less_common/waterfall_chart.rb
|
93
|
+
- lib/chart_helpers/other/control_chart.rb
|
94
|
+
- lib/chart_helpers/other/greninger_chart.rb
|
95
|
+
- lib/chart_helpers/other/heatmap.rb
|
96
|
+
- lib/chart_helpers/other/natal_chart.rb
|
97
|
+
- lib/chart_helpers/other/nomogram.rb
|
98
|
+
- lib/chart_helpers/other/pareto_chart.rb
|
99
|
+
- lib/chart_helpers/other/run_chart.rb
|
100
|
+
- lib/chart_helpers/other/strip_chart.rb
|
101
|
+
- lib/chart_helpers/other/structure_chart.rb
|
102
|
+
- lib/chart_helpers/other/vowel_chart.rb
|
103
|
+
- lib/chart_helpers/well_known_named/gantt_chart.rb
|
104
|
+
- lib/chart_helpers/well_known_named/nolan_chart.rb
|
105
|
+
- lib/chart_helpers/well_known_named/pert_chart.rb
|
106
|
+
- lib/chart_helpers/well_known_named/smith_chart.rb
|
107
|
+
- lib/chart_templates/css/bubble_chart.css.erb
|
108
|
+
- lib/chart_templates/css/histogram.css.erb
|
109
|
+
- lib/chart_templates/css/horizontal_bar_chart.css.erb
|
110
|
+
- lib/chart_templates/css/line_chart.css.erb
|
111
|
+
- lib/chart_templates/css/pie_chart.css.erb
|
112
|
+
- lib/chart_templates/css/polar_area_diagram.css.erb
|
113
|
+
- lib/chart_templates/css/radar_chart.css.erb
|
114
|
+
- lib/chart_templates/css/streamgraph.css.erb
|
115
|
+
- lib/chart_templates/css/treemap.css.erb
|
116
|
+
- lib/chart_templates/css/vertical_bar_chart.css.erb
|
117
|
+
- lib/chart_templates/js/bubble_chart.js.erb
|
118
|
+
- lib/chart_templates/js/histogram.js.erb
|
119
|
+
- lib/chart_templates/js/horizontal_bar_chart.js.erb
|
120
|
+
- lib/chart_templates/js/line_chart.js.erb
|
121
|
+
- lib/chart_templates/js/pie_chart.js.erb
|
122
|
+
- lib/chart_templates/js/polar_area_diagram.js.erb
|
123
|
+
- lib/chart_templates/js/radar_chart.js.erb
|
124
|
+
- lib/chart_templates/js/streamgraph.js.erb
|
125
|
+
- lib/chart_templates/js/treemap.js.erb
|
126
|
+
- lib/chart_templates/js/vertical_bar_chart.js.erb
|
127
|
+
- lib/d3-charts.rb
|
128
|
+
- lib/d3/charts.rb
|
129
|
+
- lib/d3/charts/engine.rb
|
130
|
+
- lib/d3/charts/railtie.rb
|
131
|
+
- lib/d3/charts/version.rb
|
132
|
+
homepage: https://github.com/bmalets/d3-charts
|
133
|
+
licenses: []
|
134
|
+
post_install_message:
|
135
|
+
rdoc_options: []
|
136
|
+
require_paths:
|
137
|
+
- lib
|
138
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
139
|
+
none: false
|
140
|
+
requirements:
|
141
|
+
- - ! '>='
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
version: '0'
|
144
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ! '>='
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: 1.0.0
|
150
|
+
requirements: []
|
151
|
+
rubyforge_project: d3-charts
|
152
|
+
rubygems_version: 1.8.23.2
|
153
|
+
signing_key:
|
154
|
+
specification_version: 3
|
155
|
+
summary: D3 for Rails Asset Pipeline
|
156
|
+
test_files: []
|