【问题标题】:Google LineChart legend and gridlinesGoogle LineChart 图例和网格线
【发布时间】:2015-10-19 23:06:48
【问题描述】:

我想让this Google LineChart 看起来更像this chart from GitHub。我正在重新创建 GitHub 的图表,因为我想要一个高质量(矢量)的版本,而不是高度压缩的 JPEG(他们在他们的正确思想中将图表保存为 JPEG!)。

我想将图例移动到图表中并添加垂直网格线(在水平轴“年份”上)。有谁知道如何做到这一点?

这是代码,但请随时编辑my JSFiddle

google.load('visualization', '1', {packages: ['corechart', 'line']});
google.setOnLoadCallback(function() {
    var data = google.visualization.arrayToDataTable([
        ['Year', 'JavaScript', 'Java',  'Ruby', 'PHP',  'Python',   'CSS',  'C++',  'Objective C',  'C',    'C#',   'Perl', 'Emacs Lisp',   'VimL', 'Shell','HTML'],
        ['2008', 2,             7,      1,      4,      3,          null,   8,      9,              5,      null,   6,      null,           null,       null,   null],
        ['2009', 2,             7,      1,      4,      3,          null,   8,      9,              6,      null,   5,      10,             null,       null,   null],
        ['2010', 2,             5,      1,      4,      3,          null,   8,      9,              6,      null,   7,      null,           10,         null,   null],
        ['2011', 2,             5,      1,      4,      3,          null,   7,      8,              6,      10,     9,      null,           null,       null,   null],
        ['2012', 2,             3,      1,      4,      5,          null,   7,      8,              6,      9,      null,   null,           null,       10,     null],
        ['2013', 1,             3,      2,      4,      5,          10,     7,      8,              6,      9,      null,   null,           null,       null,   null],
        ['2014', 1,             2,      3,      4,      5,          6,      7,      9,              8,      10,     null,   null,           null,       null,   null],
        ['2015', 1,             2,      3,      4,      5,          6,      7,      null,           9,      8,      null,   null,           null,       null,   10]
    ]);

    var options = {
        title: 'Rank of top languages on GitHub over time',
        width: '100%',
        height: 600,
        hAxis: {
            title: 'Time',
        },
        vAxis: {
            title: 'Rank',
            viewWindow: {
               min: 1
            },
            direction: -1,
            gridlines: {
                count: 11
            }
        }
    };

    var chart = new google.visualization.LineChart(document.getElementById('chart'));

    chart.draw(data, options);
});

【问题讨论】:

    标签: javascript charts google-visualization


    【解决方案1】:

    更改数据类型 -> 类型:'日期'

    google.load('visualization', '1.1', {packages: ['corechart', 'line']});
    google.setOnLoadCallback(function() {
        var data = google.visualization.arrayToDataTable([
        [{label: 'Year', type: 'date'}, 'JavaScript', 'Java',   'Ruby', 'PHP',  'Python',   'CSS',  'C++',  'Objective C',  'C',    'C#',   'Perl', 'Emacs Lisp',   'VimL', 'Shell','HTML'],
        [new Date(2008, 0, 0), 2,   7,      1,      4,      3,          null,   8,      9,  5,      null,   6,      null,           null,       null,   null],
        [new Date(2009, 0, 0), 2,   7,      1,      4,      3,          null,   8,      9,              6,      null,   5,      10,             null,       null,   null],
        [new Date(2010, 0, 0), 2,   5,      1,      4,      3,          null,   8,      9,              6,      null,   7,      null,           10,         null,   null],
        [new Date(2011, 0, 0), 2,   5,      1,      4,      3,          null,   7,      8,              6,      10,     9,      null,           null,       null,   null],
        [new Date(2012, 0, 0), 2,   3,      1,      4,      5,          null,   7,      8,              6,  9,      null,   null,           null,       10,     null],
        [new Date(2013, 0, 0), 1,   3,      2,      4,      5,          10,     7,      8,              6,      9,      null,   null,           null,       null,   null],
        [new Date(2014, 0, 0), 1,   2,      3,      4,      5,          6,      7,      9,              8,      10,     null,   null,           null,       null,   null],
        [new Date(2015, 0, 0), 1,   2,      3,      4,      5,          6,      7,      null,           9,      8,      null,   null,           null,       null,   10]
    ]);
    
    var options = {
        title: 'Rank of top languages on GitHub over time',
        width: '100%',
        height: 800,
        hAxis: {
            title: 'Time',
            gridlines: {
                count: -1
            },
        },
         vAxis: {
            title: 'Rank',
            viewWindow: {
               min: 1
            },
            direction: -1,
            gridlines: {
                count: -1
            }
        }
    };
    
    var chart = new google.visualization.LineChart(document.getElementById('chart'));
    
    chart.draw(data, options);
    });
    

    https://jsfiddle.net/mblenton/x00omtxL/15/

    【讨论】:

    • 谢谢,这解决了网格问题,但我仍在努力让图例内联。我想要的是让 Google 图表看起来像 this chart,每种语言名称都位于相应图表的顶部。
    猜你喜欢
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多