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...