首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对谷歌条形图排序

对谷歌条形图排序
EN

Stack Overflow用户
提问于 2017-10-03 12:43:20
回答 2查看 2K关注 0票数 1

我有点小问题。我希望这足以描述我的问题。这是代码

代码语言:javascript
复制
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
  google.charts.load('current', {'packages':['bar']});
  google.charts.setOnLoadCallback(drawStuff);                       
  function drawStuff() {
    var data = google.visualization.arrayToDataTable([
      ['Operacije', 'Ponudjeno vreme', 'Utroseno vreme'],
      ['CNC Glodanje', cnc_glodanje, a_cnc_glodanje],
      ['Erodiranje', cnc_erodiranje, b_cnc_erodiranje],
      ['Erodiranje zicom', cnc_erodiranje_zicom, c_cnc_erodiranje_zicom],
      ['Ravno brusenje', ravno_brusenje, d_ravno_brusenje],
      ['Struganje', struganje, e_struganje],
      ['Okruglo brusenje', okruglo_brusenje, f_okruglo_brusenje],
      ['CNC struganje', cnc_struganje, g_cnc_struganje],
      ['Bravarski radovi', bravarski_radovi, j_bravarski_radovi]

    ]);
    var options = {
      chart: {
        title: 'Utroseno vreme',
        subtitle: 'Ponudjeno i utroseno vreme',   
      },    
      bars: 'horizontal' // Required for Material Bar Charts.
    };
    var chart = new google.charts.Bar(document.getElementById('barchart_material'));
    chart.draw(data, google.charts.Bar.convertOptions(options));
  }
</script>

https://i.imgur.com/nF97lE4.png

如何将水平轴上的值从低到高进行排序?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-03 16:44:31

图像中显示的问题是在加载数据表时使用'string'值的结果.

请参阅下面的工作片段,此图表与发布的图像相似.

代码语言:javascript
复制
google.charts.load('current', {'packages':['bar']});
  google.charts.setOnLoadCallback(drawStuff);
  function drawStuff() {
    var cnc_glodanje = '3';
    var a_cnc_glodanje = '2';
    var cnc_erodiranje = '4';
    var b_cnc_erodiranje = '';
    var cnc_erodiranje_zicom = '12';
    var c_cnc_erodiranje_zicom = '';
    var ravno_brusenje = '3';
    var d_ravno_brusenje = '6';
    var struganje = '4';
    var e_struganje = null;
    var okruglo_brusenje = '8';
    var f_okruglo_brusenje = '4';
    var cnc_struganje = '4';
    var g_cnc_struganje = '5';
    var bravarski_radovi = '3';
    var j_bravarski_radovi = '3';

    var data = google.visualization.arrayToDataTable([
      ['Operacije', 'Ponudjeno vreme', 'Utroseno vreme'],
      ['CNC Glodanje', cnc_glodanje, a_cnc_glodanje],
      ['Erodiranje', cnc_erodiranje, b_cnc_erodiranje],
      ['Erodiranje zicom', cnc_erodiranje_zicom, c_cnc_erodiranje_zicom],
      ['Ravno brusenje', ravno_brusenje, d_ravno_brusenje],
      ['Struganje', struganje, e_struganje],
      ['Okruglo brusenje', okruglo_brusenje, f_okruglo_brusenje],
      ['CNC struganje', cnc_struganje, g_cnc_struganje],
      ['Bravarski radovi', bravarski_radovi, j_bravarski_radovi]
    ]);
    var options = {
      chart: {
        title: 'Utroseno vreme',
        subtitle: 'Ponudjeno i utroseno vreme',
      },
      bars: 'horizontal',
      height: 400
    };
    var chart = new google.charts.Bar(document.getElementById('barchart_material'));
    chart.draw(data, google.charts.Bar.convertOptions(options));
    $(window).resize(function() {
      chart.draw(data, google.charts.Bar.convertOptions(options));
    });
  }
代码语言:javascript
复制
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="barchart_material"></div>

您需要根据数据中的数字类型使用parseFloatparseInt

将字符串解析为数字可以纠正水平轴上的值问题。

参见下面的工作片段,parseFloat是在arrayToDataTable中添加的..。

代码语言:javascript
复制
  google.charts.load('current', {'packages':['bar']});
  google.charts.setOnLoadCallback(drawStuff);
  function drawStuff() {
    var cnc_glodanje = '3';
    var a_cnc_glodanje = '2';
    var cnc_erodiranje = '4';
    var b_cnc_erodiranje = '';
    var cnc_erodiranje_zicom = '12';
    var c_cnc_erodiranje_zicom = '';
    var ravno_brusenje = '3';
    var d_ravno_brusenje = '6';
    var struganje = '4';
    var e_struganje = null;
    var okruglo_brusenje = '8';
    var f_okruglo_brusenje = '4';
    var cnc_struganje = '4';
    var g_cnc_struganje = '5';
    var bravarski_radovi = '3';
    var j_bravarski_radovi = '3';

    var data = google.visualization.arrayToDataTable([
      ['Operacije', 'Ponudjeno vreme', 'Utroseno vreme'],
      ['CNC Glodanje', parseFloat(cnc_glodanje), parseFloat(a_cnc_glodanje)],
      ['Erodiranje', parseFloat(cnc_erodiranje), parseFloat(b_cnc_erodiranje)],
      ['Erodiranje zicom', parseFloat(cnc_erodiranje_zicom), parseFloat(c_cnc_erodiranje_zicom)],
      ['Ravno brusenje', parseFloat(ravno_brusenje), parseFloat(d_ravno_brusenje)],
      ['Struganje', parseFloat(struganje), parseFloat(e_struganje)],
      ['Okruglo brusenje', parseFloat(okruglo_brusenje), parseFloat(f_okruglo_brusenje)],
      ['CNC struganje', parseFloat(cnc_struganje), parseFloat(g_cnc_struganje)],
      ['Bravarski radovi', parseFloat(bravarski_radovi), parseFloat(j_bravarski_radovi)]
    ]);
    var options = {
      chart: {
        title: 'Utroseno vreme',
        subtitle: 'Ponudjeno i utroseno vreme',
      },
      bars: 'horizontal'
    };
    var chart = new google.charts.Bar(document.getElementById('barchart_material'));
    chart.draw(data, google.charts.Bar.convertOptions(options));
    $(window).resize(function() {
      chart.draw(data, google.charts.Bar.convertOptions(options));
    });
  }
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="barchart_material"></div>

注意:在“完整页”模式下打开上面的片段以获得更好的示例.

票数 0
EN

Stack Overflow用户

发布于 2017-10-03 13:26:49

来自Google可视化API参考

若要按第三列排序,然后按第二列排序,请使用:data.sort({列: 2},{列: 1});

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46544894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档