1

Highchartsで簡単な棒グラフを作成したいと思います。ただし、最大値をシリーズの実際の最大値よりも小さくして、それが発生していることを視覚的に示してください。

highchartsデモを参照した場合: http ://www.highcharts.com/demo/bar-basic

最長のバーが4054まで伸びていても、スケールを4,000で終了させたいのです。その部分は、最大値を設定するだけで簡単です。

ただし、バーが最大値を超えていることをユーザーに知らせるための視覚的なインジケーターが必要です。これは、シリーズの最高値が非常に高いため、グラフ内の他の値を相互に比較して見づらくなる場合に使用します。基本的に外れ値を気にする必要はありませんが、外れ値が軸の外側にあることを知っておく必要があります。

よく考えてみると、ティックを最大値未満に設定し、tickIntervalfalseで終了することができます。別のオプションはありますか?

4

1 に答える 1

1

さて、しかし、この情報はどこに表示されるべきですか?

ツールチップとチャートの下のレポートdivにこの情報をマークした簡単な例を用意しました。

http://jsfiddle.net/sbochan/8sKcs/

$(function () {
var chart;
$(document).ready(function() {
    chart = new Highcharts.Chart({
        chart: {
            renderTo: 'container',
            type: 'bar'
        },
        title: {
            text: 'Historic World Population by Region'
        },
        subtitle: {
            text: 'Source: Wikipedia.org'
        },
        xAxis: {
            categories: ['Africa', 'America', 'Asia', 'Europe', 'Oceania'],
            title: {
                text: null
            }
        },
        yAxis: {
            min: 0,
            max:4000,
            title: {
                text: 'Population (millions)',
                align: 'high'
            },
            labels: {
                overflow: 'justify'
            }
        },
        tooltip: {
            formatter: function() {
                if(this.y > (this.series.chart.yAxis[0].max))
                    return this.series.name +': '+ this.y + ' max is smaller: '+this.series.chart.yAxis[0].max ;
                else
                    return this.series.name +': '+ this.y;
            }
        },
        plotOptions: {
            bar: {
                dataLabels: {
                    enabled: true
                }
            }
        },
        credits: {
            enabled: false
        },
        series: [{
            name: 'Year 2008',
            data: [973, 914, 4054, 732, 34]
        }]
    },function(chart){

        var max = chart.yAxis[0].max,
            content = '<h2>Points</h2><br/>';

        $.each(chart.series,function(i,serie){
            $.each(serie.data,function(j,data){
               if(data.y > max)
                   content += 'Point: '+data.y+' is bigger than max: '+max;
            });
        });

        $('#report').html(content);

    });
});

});

編集:

追加することもできます

data.graphic.attr({
                   fill:'yellow'
                 });

バーの色を変更します。

于 2013-02-19T09:45:38.000 に答える