Skip to content

Commit

Permalink
measure x axis labels too and use the longest to determine margins
Browse files Browse the repository at this point in the history
  • Loading branch information
alanna scott committed Apr 5, 2017
1 parent 464a867 commit cc640c1
Showing 1 changed file with 15 additions and 4 deletions.
19 changes: 15 additions & 4 deletions superset/assets/visualizations/big_number.js
Expand Up @@ -13,6 +13,20 @@ function getNumTicks(data, slice, margin) {
return numTicks;
}

function getMargin(valueExt, data, f) {
const yAxisLabelWidths = valueExt.map(value => getTextWidth(f(value), '10px Roboto'));
const xAxisLabelWidths = data.map(d => getTextWidth(formatDate(d[0]), '10px Roboto'));
const yAxisMaxWidth = Math.max(...yAxisLabelWidths);
const xAxisMaxWidth = Math.max(...xAxisLabelWidths);
let margin;
if (yAxisMaxWidth > xAxisMaxWidth) {
margin = yAxisMaxWidth + (yAxisMaxWidth / 2);
} else if (xAxisMaxWidth > yAxisMaxWidth) {
margin = xAxisMaxWidth + (xAxisMaxWidth / 2);
}
return margin;
}

function bigNumberVis(slice, payload) {
const div = d3.select(slice.selector);
// Define the percentage bounds that define color from red to green
Expand Down Expand Up @@ -48,10 +62,7 @@ function bigNumberVis(slice, payload) {
}
const dateExt = d3.extent(data, (d) => d[0]);
const valueExt = d3.extent(data, (d) => d[1]);
const yAxisLabelWidths = valueExt.map(value => getTextWidth(f(value), '10px Roboto'));
const yAxisMaxWidth = Math.max(...yAxisLabelWidths);
const margin = yAxisMaxWidth + (yAxisMaxWidth / 2);

const margin = getMargin(valueExt, data, f);
const scaleX = d3.time.scale.utc().domain(dateExt).range([margin, width - margin]);
const scaleY = d3.scale.linear().domain(valueExt).range([height - (margin), margin]);
const colorRange = [d3.hsl(0, 1, 0.3), d3.hsl(120, 1, 0.3)];
Expand Down

0 comments on commit cc640c1

Please sign in to comment.