Skip to content

Commit 677aacc

Browse files
committed
remove 'kernel' from violin attributes
- as non-gaussian kernels may require us to make soft spanmode bounds kernel-dependent, which will require some trial-and-error - as most other libraries don't support non-guassian kernel, let's defer this.
1 parent 71700de commit 677aacc

File tree

3 files changed

+4
-15
lines changed

3 files changed

+4
-15
lines changed

src/traces/violin/attributes.js

-10
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,6 @@ module.exports = {
2525
].join(' ')
2626
}),
2727

28-
kernel: {
29-
valType: 'enumerated',
30-
values: ['gaussian', 'epanechnikov'],
31-
dflt: 'gaussian',
32-
role: 'info',
33-
editType: 'calc',
34-
description: [
35-
'Determines which kernel is used to compute the kernel density estimation.'
36-
].join(' ')
37-
},
3828
bandwidth: {
3929
valType: 'number',
4030
min: 0,

src/traces/violin/defaults.js

-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
2525
boxDefaults.handleSampleDefaults(traceIn, traceOut, coerce, layout);
2626
if(traceOut.visible === false) return;
2727

28-
coerce('kernel');
2928
coerce('bandwidth');
3029
coerce('scalegroup', traceOut.name);
3130
coerce('scalemode');

src/traces/violin/helpers.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,18 @@
1010

1111
var Lib = require('../../lib');
1212

13+
// Maybe add kernels more down the road,
14+
// but note that the default `spanmode: 'soft'` bounds might have
15+
// to become kernel-dependent
1316
var kernels = {
1417
gaussian: function(v) {
1518
return (1 / Math.sqrt(2 * Math.PI)) * Math.exp(-0.5 * v * v);
16-
},
17-
epanechnikov: function(v) {
18-
return Math.abs(v) <= 1 ? 0.75 * (1 - v * v) : 0;
1919
}
2020
};
2121

2222
exports.makeKDE = function(calcItem, trace, vals) {
2323
var len = vals.length;
24-
var kernel = kernels[trace.kernel];
24+
var kernel = kernels.gaussian;
2525
var bandwidth = calcItem.bandwidth;
2626
var factor = 1 / (len * bandwidth);
2727

0 commit comments

Comments
 (0)