Sort_StackedBars
Useful for sorting a stacked bar with data driven from gogle sheets, by clicking on a category
by ehelix
HTML
<script src="https://www.google.com/jsapi"></script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<div id="chart_div" style="width:450px; height: 450px"><div>
JavaScript
//Google charts sorting script, best works for stacked bars driven from google sheets, see sample sheet linked in query argument for input format.
// Created : Ethiohelix , http://ethiohelix.blogspot.com/
google.load('visualization', '1', {packages: ['corechart', 'bar']});
google.setOnLoadCallback( function () {
var Link = 'https://docs.google.com/spreadsheets/d/1pF2GIadRqB0MnqMZ-OurbSW8VJ_CYSYe8-uJ7m0XMT0/edit#gid=0&range=Sheet1!A1:H8';
var my_div = "chart_div";
//set google visualization bar chart options here
//**********************************************************
var options = {
title: 'Sample Document',
chartArea: {
width: '55%',
height: '70%'
},
isStacked: true,
};
//***********************************************************
//pull data from spread sheet (Columns = Labels, Rows = pops)
// add sheet and range of data at the end like: &range=Sheet1!A1:H8
var query = new google.visualization.Query(Link);
query.send(handleQueryResponse);
function handleQueryResponse(response) {
var data = response.getDataTable();
process_data(data,my_div,options);
}
});
function process_data(data,my_div,options){
var get_config = chart_config(data,options);
var options = get_config[0];
var original_colors = get_config[1];
var select_counter = 0;
var chart = new google.visualization.BarChart(document.getElementById(my_div));
var modifications
function selectHandler() {
select_counter +=1;
//used for sorting selected label
var selection = chart.getSelection();
// do for all selections that are valid, if clicking on the actual chart to
// sort is not desired add && (selection[0].row == null)) to only sort by labels
if (selection.length > 0) {
var selected_column = selection[0].column;
if (select_counter == 1){
var selected_label = new...