chartx 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +17 -0
- data/.gitmodules +3 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +145 -0
- data/Rakefile +1 -0
- data/chartx.gemspec +40 -0
- data/lib/chartx/engine.rb +11 -0
- data/lib/chartx/helper.rb +184 -0
- data/lib/chartx/version.rb +3 -0
- data/lib/chartx.rb +3 -0
- data/screenshots/barchart.png +0 -0
- data/screenshots/bulletchart.png +0 -0
- data/screenshots/horizontalbarchart.png +0 -0
- data/screenshots/linechart.png +0 -0
- data/screenshots/linewithfocuschart.png +0 -0
- data/screenshots/multibarchart2.png +0 -0
- data/screenshots/piechart.png +0 -0
- data/screenshots/scatterchart.png +0 -0
- data/screenshots/stackedareachart.png +0 -0
- data/screenshots/stackedareachart3.png +0 -0
- data/vendor/assets/javascripts/chartx-core.js +9 -0
- data/vendor/assets/javascripts/chartx-models.js +2 -0
- data/vendor/assets/javascripts/nvd3/.gitignore +27 -0
- data/vendor/assets/javascripts/nvd3/.jshintrc +3 -0
- data/vendor/assets/javascripts/nvd3/LICENSE.md +49 -0
- data/vendor/assets/javascripts/nvd3/README.md +1 -0
- data/vendor/assets/javascripts/nvd3/lib/cie.js +155 -0
- data/vendor/assets/javascripts/nvd3/lib/crossfilter.js +1180 -0
- data/vendor/assets/javascripts/nvd3/lib/crossfilter.min.js +1 -0
- data/vendor/assets/javascripts/nvd3/lib/d3.js +8798 -0
- data/vendor/assets/javascripts/nvd3/lib/d3.min.js +5 -0
- data/vendor/assets/javascripts/nvd3/lib/fisheye.js +86 -0
- data/vendor/assets/javascripts/nvd3/lib/hive.js +80 -0
- data/vendor/assets/javascripts/nvd3/lib/horizon.js +192 -0
- data/vendor/assets/javascripts/nvd3/lib/sankey.js +292 -0
- data/vendor/assets/javascripts/nvd3/nv.d3.js +13048 -0
- data/vendor/assets/javascripts/nvd3/nv.d3.min.js +6 -0
- data/vendor/assets/javascripts/nvd3/src/core.js +118 -0
- data/vendor/assets/javascripts/nvd3/src/intro.js +1 -0
- data/vendor/assets/javascripts/nvd3/src/models/axis.js +398 -0
- data/vendor/assets/javascripts/nvd3/src/models/boilerplate.js +102 -0
- data/vendor/assets/javascripts/nvd3/src/models/bullet.js +377 -0
- data/vendor/assets/javascripts/nvd3/src/models/bulletChart.js +341 -0
- data/vendor/assets/javascripts/nvd3/src/models/cumulativeLineChart.js +685 -0
- data/vendor/assets/javascripts/nvd3/src/models/discreteBar.js +327 -0
- data/vendor/assets/javascripts/nvd3/src/models/discreteBarChart.js +290 -0
- data/vendor/assets/javascripts/nvd3/src/models/distribution.js +146 -0
- data/vendor/assets/javascripts/nvd3/src/models/historicalBar.js +289 -0
- data/vendor/assets/javascripts/nvd3/src/models/historicalBarChart.js +421 -0
- data/vendor/assets/javascripts/nvd3/src/models/indentedTree.js +317 -0
- data/vendor/assets/javascripts/nvd3/src/models/legend.js +207 -0
- data/vendor/assets/javascripts/nvd3/src/models/line.js +284 -0
- data/vendor/assets/javascripts/nvd3/src/models/lineChart.js +421 -0
- data/vendor/assets/javascripts/nvd3/src/models/linePlusBarChart.js +455 -0
- data/vendor/assets/javascripts/nvd3/src/models/linePlusBarWithFocusChart.js +665 -0
- data/vendor/assets/javascripts/nvd3/src/models/lineWithFisheye.js +197 -0
- data/vendor/assets/javascripts/nvd3/src/models/lineWithFisheyeChart.js +319 -0
- data/vendor/assets/javascripts/nvd3/src/models/lineWithFocusChart.js +560 -0
- data/vendor/assets/javascripts/nvd3/src/models/multiBar.js +442 -0
- data/vendor/assets/javascripts/nvd3/src/models/multiBarChart.js +506 -0
- data/vendor/assets/javascripts/nvd3/src/models/multiBarHorizontal.js +420 -0
- data/vendor/assets/javascripts/nvd3/src/models/multiBarHorizontalChart.js +448 -0
- data/vendor/assets/javascripts/nvd3/src/models/multiBarTimeSeries.js +371 -0
- data/vendor/assets/javascripts/nvd3/src/models/multiBarTimeSeriesChart.js +403 -0
- data/vendor/assets/javascripts/nvd3/src/models/multiChart.js +444 -0
- data/vendor/assets/javascripts/nvd3/src/models/ohlcBar.js +365 -0
- data/vendor/assets/javascripts/nvd3/src/models/parallelCoordinates.js +238 -0
- data/vendor/assets/javascripts/nvd3/src/models/pie.js +386 -0
- data/vendor/assets/javascripts/nvd3/src/models/pieChart.js +302 -0
- data/vendor/assets/javascripts/nvd3/src/models/scatter.js +660 -0
- data/vendor/assets/javascripts/nvd3/src/models/scatterChart.js +614 -0
- data/vendor/assets/javascripts/nvd3/src/models/scatterPlusLineChart.js +610 -0
- data/vendor/assets/javascripts/nvd3/src/models/sparkline.js +179 -0
- data/vendor/assets/javascripts/nvd3/src/models/sparklinePlus.js +293 -0
- data/vendor/assets/javascripts/nvd3/src/models/stackedArea.js +336 -0
- data/vendor/assets/javascripts/nvd3/src/models/stackedAreaChart.js +490 -0
- data/vendor/assets/javascripts/nvd3/src/nv.d3.css +704 -0
- data/vendor/assets/javascripts/nvd3/src/outro.js +1 -0
- data/vendor/assets/javascripts/nvd3/src/tooltip.js +133 -0
- data/vendor/assets/javascripts/nvd3/src/utils.js +118 -0
- data/vendor/assets/javascripts/set-env.js.erb +1 -0
- data/vendor/assets/stylesheets/chartx.css +3 -0
- metadata +189 -0
@@ -0,0 +1,155 @@
|
|
1
|
+
(function(d3) {
|
2
|
+
var cie = d3.cie = {};
|
3
|
+
|
4
|
+
cie.lab = function(l, a, b) {
|
5
|
+
return arguments.length === 1
|
6
|
+
? (l instanceof Lab ? lab(l.l, l.a, l.b)
|
7
|
+
: (l instanceof Lch ? lch_lab(l.l, l.c, l.h)
|
8
|
+
: rgb_lab((l = d3.rgb(l)).r, l.g, l.b)))
|
9
|
+
: lab(+l, +a, +b);
|
10
|
+
};
|
11
|
+
|
12
|
+
cie.lch = function(l, c, h) {
|
13
|
+
return arguments.length === 1
|
14
|
+
? (l instanceof Lch ? lch(l.l, l.c, l.h)
|
15
|
+
: (l instanceof Lab ? lab_lch(l.l, l.a, l.b)
|
16
|
+
: lab_lch((l = rgb_lab((l = d3.rgb(l)).r, l.g, l.b)).l, l.a, l.b)))
|
17
|
+
: lch(+l, +c, +h);
|
18
|
+
};
|
19
|
+
|
20
|
+
cie.interpolateLab = function(a, b) {
|
21
|
+
a = cie.lab(a);
|
22
|
+
b = cie.lab(b);
|
23
|
+
var al = a.l,
|
24
|
+
aa = a.a,
|
25
|
+
ab = a.b,
|
26
|
+
bl = b.l - al,
|
27
|
+
ba = b.a - aa,
|
28
|
+
bb = b.b - ab;
|
29
|
+
return function(t) {
|
30
|
+
return lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + "";
|
31
|
+
};
|
32
|
+
};
|
33
|
+
|
34
|
+
cie.interpolateLch = function(a, b) {
|
35
|
+
a = cie.lch(a);
|
36
|
+
b = cie.lch(b);
|
37
|
+
var al = a.l,
|
38
|
+
ac = a.c,
|
39
|
+
ah = a.h,
|
40
|
+
bl = b.l - al,
|
41
|
+
bc = b.c - ac,
|
42
|
+
bh = b.h - ah;
|
43
|
+
if (bh > 180) bh -= 360; else if (bh < -180) bh += 360; // shortest path
|
44
|
+
return function(t) {
|
45
|
+
return lch_lab(al + bl * t, ac + bc * t, ah + bh * t) + "";
|
46
|
+
};
|
47
|
+
};
|
48
|
+
|
49
|
+
function lab(l, a, b) {
|
50
|
+
return new Lab(l, a, b);
|
51
|
+
}
|
52
|
+
|
53
|
+
function Lab(l, a, b) {
|
54
|
+
this.l = l;
|
55
|
+
this.a = a;
|
56
|
+
this.b = b;
|
57
|
+
}
|
58
|
+
|
59
|
+
Lab.prototype.brighter = function(k) {
|
60
|
+
return lab(Math.min(100, this.l + K * (arguments.length ? k : 1)), this.a, this.b);
|
61
|
+
};
|
62
|
+
|
63
|
+
Lab.prototype.darker = function(k) {
|
64
|
+
return lab(Math.max(0, this.l - K * (arguments.length ? k : 1)), this.a, this.b);
|
65
|
+
};
|
66
|
+
|
67
|
+
Lab.prototype.rgb = function() {
|
68
|
+
return lab_rgb(this.l, this.a, this.b);
|
69
|
+
};
|
70
|
+
|
71
|
+
Lab.prototype.toString = function() {
|
72
|
+
return this.rgb() + "";
|
73
|
+
};
|
74
|
+
|
75
|
+
function lch(l, c, h) {
|
76
|
+
return new Lch(l, c, h);
|
77
|
+
}
|
78
|
+
|
79
|
+
function Lch(l, c, h) {
|
80
|
+
this.l = l;
|
81
|
+
this.c = c;
|
82
|
+
this.h = h;
|
83
|
+
}
|
84
|
+
|
85
|
+
Lch.prototype.brighter = function(k) {
|
86
|
+
return lch(Math.min(100, this.l + K * (arguments.length ? k : 1)), this.c, this.h);
|
87
|
+
};
|
88
|
+
|
89
|
+
Lch.prototype.darker = function(k) {
|
90
|
+
return lch(Math.max(0, this.l - K * (arguments.length ? k : 1)), this.c, this.h);
|
91
|
+
};
|
92
|
+
|
93
|
+
Lch.prototype.rgb = function() {
|
94
|
+
return lch_lab(this.l, this.c, this.h).rgb();
|
95
|
+
};
|
96
|
+
|
97
|
+
Lch.prototype.toString = function() {
|
98
|
+
return this.rgb() + "";
|
99
|
+
};
|
100
|
+
|
101
|
+
// Corresponds roughly to RGB brighter/darker
|
102
|
+
var K = 18;
|
103
|
+
|
104
|
+
// D65 standard referent
|
105
|
+
var X = 0.950470, Y = 1, Z = 1.088830;
|
106
|
+
|
107
|
+
function lab_rgb(l, a, b) {
|
108
|
+
var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;
|
109
|
+
x = lab_xyz(x) * X;
|
110
|
+
y = lab_xyz(y) * Y;
|
111
|
+
z = lab_xyz(z) * Z;
|
112
|
+
return d3.rgb(
|
113
|
+
xyz_rgb( 3.2404542 * x - 1.5371385 * y - 0.4985314 * z),
|
114
|
+
xyz_rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z),
|
115
|
+
xyz_rgb( 0.0556434 * x - 0.2040259 * y + 1.0572252 * z)
|
116
|
+
);
|
117
|
+
}
|
118
|
+
|
119
|
+
function rgb_lab(r, g, b) {
|
120
|
+
r = rgb_xyz(r);
|
121
|
+
g = rgb_xyz(g);
|
122
|
+
b = rgb_xyz(b);
|
123
|
+
var x = xyz_lab((0.4124564 * r + 0.3575761 * g + 0.1804375 * b) / X),
|
124
|
+
y = xyz_lab((0.2126729 * r + 0.7151522 * g + 0.0721750 * b) / Y),
|
125
|
+
z = xyz_lab((0.0193339 * r + 0.1191920 * g + 0.9503041 * b) / Z);
|
126
|
+
return lab(116 * y - 16, 500 * (x - y), 200 * (y - z));
|
127
|
+
}
|
128
|
+
|
129
|
+
function lab_lch(l, a, b) {
|
130
|
+
var c = Math.sqrt(a * a + b * b),
|
131
|
+
h = Math.atan2(b, a) / Math.PI * 180;
|
132
|
+
return lch(l, c, h);
|
133
|
+
}
|
134
|
+
|
135
|
+
function lch_lab(l, c, h) {
|
136
|
+
h = h * Math.PI / 180;
|
137
|
+
return lab(l, Math.cos(h) * c, Math.sin(h) * c);
|
138
|
+
}
|
139
|
+
|
140
|
+
function lab_xyz(x) {
|
141
|
+
return x > 0.206893034 ? x * x * x : (x - 4 / 29) / 7.787037;
|
142
|
+
}
|
143
|
+
|
144
|
+
function xyz_lab(x) {
|
145
|
+
return x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;
|
146
|
+
}
|
147
|
+
|
148
|
+
function xyz_rgb(r) {
|
149
|
+
return Math.round(255 * (r <= 0.00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - 0.055));
|
150
|
+
}
|
151
|
+
|
152
|
+
function rgb_xyz(r) {
|
153
|
+
return (r /= 255) <= 0.04045 ? r / 12.92 : Math.pow((r + 0.055) / 1.055, 2.4);
|
154
|
+
}
|
155
|
+
})(d3);
|