3

Highcharts (v3.0.1) の凡例タイトルを使用する必要がありますが、境界線がタイトルの長さにレンダリングされません。バグですか?widthを使っているので使えませんlayout: horizontal

複数のシリーズを追加する場合は問題ありませんが、1 つしかない場合、凡例のレイアウトにエラーが発生します (視覚的に)。

例: http://jsfiddle.net/3cSVr/1/

 $(function () {
    var chart;

     $(document).ready(function() {

         chart = new Highcharts.Chart({

             chart: {
                 renderTo: 'container',
                 type: 'line',
             },
             plotOptions: {},                
             title: {
                 text: 'Monthly Average Temperature',
                 x: -20 //center
             },
             subtitle: {
                 text: 'Source: WorldClimate.com',
                 x: -20
             },
             xAxis: {
                 categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
                     'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
             },
             yAxis: {
                 title: {
                     text: 'Temperature (°C)'
                 },
              plotLines: [{
                  value: 0,
                   width: 1,
                   color: '#808080'
               }]
             },   
             tooltip: {
                 formatter: function() {
                         return '<b>'+ this.series.name +'</b><br/>'+
                         this.x +': '+ this.y +'°C';
                 }
             },    
             legend: {
                 title: {
                     text: 'WorldClimate.com',
                     style: {
                         fontWeight: 'bold'
                     }
                 },
                 borderWidth: 2
             },               
             series: [{
                 name: 'Tokyo',
                 data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]                
             }
                     //Add more series;
             ]
         });
     });     
});

手伝ってくれてありがとう。

4

2 に答える 2

0

私は最近同じ問題を抱えていましたが、この方法で解決しました:

function updateLegendBox(chart){
   //number of series
    if(chart.series.length == 1){
        var title =  $("g.highcharts-legend-title tspan")[0];
        var len = title.textContent.length * 8;
        var box = $("g.highcharts-legend rect")[0];
        box.setAttribute('width', len)
    }
}

var chart = new Highcharts.Chart({...});
updateLegendBox(chart);

お役に立てば幸いです

于 2013-04-12T00:28:44.727 に答える
0

バグのように見えるので、https ://github.com/highslide-software/highcharts.com/issues/1717 で開発者に報告しました。

于 2013-04-12T10:16:06.307 に答える