I’m running DC.js rev 3.0.2 and D3.js rev 5.16.0 and Crossfilter.js rev 1.5.4. When creating a simple pie chart from the examples, it doesn’t show anything and gives the following output in console:
Uncaught TypeError: Cannot read properties of undefined (reading 'by')`
at _chart.ordering (base-mixin.js:348:44)
at dc.capMixin (cap-mixin.js:20:12)
at dc.pieChart (pie-chart.js:47:21)
at pie.html:19:16
Here is the code:
<script type="text/javascript" src="js/d3.js"></script>
<script type="text/javascript" src="js/crossfilter.js"></script>
<script type="text/javascript" src="js/dc.js"></script>
<script type="text/javascript">
var chart = dc.pieChart("#test");
d3.csv("morley.csv").then(function(experiments) {
var ndx = crossfilter(experiments),
runDimension = ndx.dimension(function(d) {return "run-"+d.Run;})
speedSumGroup = runDimension.group().reduceSum(function(d) {return d.Speed * d.Run;});
chart
.width(768)
.height(480)
.slicesCap(4)
.innerRadius(100)
.dimension(runDimension)
.group(speedSumGroup)
.legend(dc.legend().highlightSelected(true))
// workaround for #703: not enough data is accessible through .label() to display percentages
.on('pretransition', function(chart) {
chart.selectAll('text.pie-slice').text(function(d) {
return d.data.key + ' ' + dc.utils.printSingleValue((d.endAngle - d.startAngle) / (2*Math.PI) * 100) + '%';
})
});
chart.render();
});
The piechart is working in Chrome but not in Edge, Firefox or on my Android mobile.