Reputation: 101
i have created following d3 stacked bar chart
var ContainersStackedBarChart = function() {
"use strict";
var stackedBarChartData = [{
key: 'Packed',
'color' : COLOR_RED,
values: [
{ x:1, y: 10}, { x:2, y: 15}, { x:3, y: 16}, { x:4, y: 20}, { x:5, y: 57}, { x:6, y: 42}, { x:7, y: 12}, { x:8, y: 65}, { x:9, y: 34}, { x:10, y: 52}
]
},{
key: 'Un-Packed',
'color' : COLOR_ORANGE,
values: [
{ x:1, y: 10}, { x:2, y: 15}, { x:3, y: 16}, { x:4, y: 45}, { x:5, y: 67}, { x:6, y: 34}, { x:7, y: 43}, { x:8, y: 65}, { x:9, y: 32}, { x:10, y: 12},
]
}];
nv.addGraph({
generate: function() {
var stackedBarChart = nv.models.multiBarChart()
.stacked(true)
.showControls(false);
var svg = d3.select('#containersbycarrier').append('svg').datum(stackedBarChartData);
svg.transition().duration(0).call(stackedBarChart);
return stackedBarChart;
}
});
};
but the problem when data incrase it is not showing x axis values
i want to show full x axis labels with maybe by reducing the bar width.
i tried using this
svg.scale.ordinal().range([0, stackedBarChartData.length * 50]);
but didnt not work
Upvotes: 0
Views: 42
Reputation: 1278
You Need to Add .reduceXTicks(false) to show all ticks.
var stackedBarChartData = [{
key: 'Packed',
'color' : 'red',
values: [
{ x:1, y: 10}, { x:2, y: 15}, { x:3, y: 16}, { x:4, y: 20}, { x:5, y: 57}, { x:6, y: 42}, { x:7, y: 12}, { x:8, y: 65}, { x:9, y: 34}, { x:10, y: 52}
]
},{
key: 'Un-Packed',
'color' : 'green',
values: [
{ x:1, y: 10}, { x:2, y: 15}, { x:3, y: 16}, { x:4, y: 45}, { x:5, y: 67}, { x:6, y: 34}, { x:7, y: 43}, { x:8, y: 65}, { x:9, y: 32}, { x:10, y: 12},
]
}];
nv.addGraph({
generate: function() {
var stackedBarChart = nv.models.multiBarChart()
.stacked(true)
.reduceXTicks(false)
.showControls(false);
var svg = d3.select('#containersbycarrier').append('svg').datum(stackedBarChartData);
svg.transition().duration(0).call(stackedBarChart);
return stackedBarChart;
}
});
<script src="https://d3js.org/d3.v3.min.js"></script>
<script src="https://cdn.rawgit.com/novus/nvd3/v1.8.1/build/nv.d3.min.js"></script>
<div id="containersbycarrier"></div>
Upvotes: 1