wefra-odoo11/custom/scripts/d3js/chart/bar_chart.js

93 lines
2.6 KiB
JavaScript
Raw Permalink Normal View History

2019-10-02 21:28:58 +00:00
HorizontalBarChart = {
init: function(svg, html_tag_attr, dataset, xBar, yBar, wBar, hBar, color, yScale){
this.xBar = xBar;
this.yBar = yBar;
this.wBar = wBar;
this.hBar = hBar;
this.color = color;
this.yScale = yScale;
svg.selectAll("rect")
.data(dataset)
.enter()
.append("rect")
.attr("x", this.xBar)
.attr("y", this.yBar)
.attr("width", this.wBar)
.attr("height", this.hBar)
.attr("fill", this.color);
}
};
//VerticalBarChart = {
// init: function(svg, dataset, xBar, yBar, wBar, hBar){ //, is_tooltip=false, tooltipXPosition=false, tooltipYPosition=false
// svg.selectAll("rect")
// .data(dataset)
// .enter()
// .append("rect")
// .attr("x", xBar)
// .attr("y", yBar)
// .attr("width", wBar)
// .attr("height", hBar)
// .attr("fill", "grey");
// } //ENDOF init()
//
//};
VerticalBarChart = {
margin: {top: 20, right: 0, bottom: 0, left: 80},
init: function(svg, html_tag_attr, dataset, xBar, yBar, wBar, hBar, color, xScale){ //, is_tooltip=false, tooltipXPosition=false, tooltipYPosition=false
this.xBar = xBar;
this.yBar = yBar;
this.wBar = wBar;
this.hBar = hBar;
this.color = color;
this.xScale = xScale;
var height = $(html_tag_attr).height();
svg.selectAll("rect")
.data(dataset)
.enter()
.append("rect")
.attr("x", this.xBar)
.attr("y", this.yBar)
.attr("width", this.wBar)
.attr("height", this.hBar)
.attr("fill", this.color)
.classed("hidden", true)
.on("mouseover", function(d){
var xPosition = d3.select(this).attr("x"); // + xScale.bandwidth() / 2
var yPosition = parseFloat(d3.select(this).attr("y")); // / 2 + height / 2
d3.select("#tooltip")
.style("left", xPosition + "px")
.style("top", yPosition + "px")
//.style("position", "absolute")
.select("#value")
.text(d.x +": CHF"+ d.y);
d3.select("#tooltip").classed("hidden", false);
})
.on("mouseout", function(){
d3.select("#tooltip").classed("hidden", true);
})
;
var y = d3.scaleLinear().range([(height), this.margin.top]);
y.domain([0, d3.max(dataset, function(d){ return +d.y + 0; })]);
// Add the Y Axis
svg.append("g")
.attr("class", "axis")
.call(d3.axisLeft(y))
.selectAll("text")
.style("text-anchor", "end")
;
} //ENDOF init()
};