2016-08-18 10 views
1

私は対数y軸の棒グラフを持っています。 Y軸の最小値を0に近い値(例えば0.1)に設定すると、ダニ間の間隔が等しく見えます。しかし、要件に応じてminを1000に設定すると、チャートの動作が変化し、ダニ間のスペースが不均一になります。例はhttps://jsfiddle.net/2vh9h2q3/です。コード自体は次のとおりです。ダニ間に不均一な間隔があります

new Highcharts.Chart({ 
    "chart": { 
     "zoomType": "xy", 
     "renderTo": $('#container')[0], 
     "type": 'bar' 
    }, 
    "title": { 
     "text": null 
    }, 
    "subtitle": { 
     "text": null 
    }, 
    "credits": { 
     "enabled": false 
    }, 
    "exporting": { 
     "enabled": false 
    }, 
    "xAxis": { 
     "categories": ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], 
     "title": { 
     "text": null 
     }, 
     "labels": { 
     "align": "left", 
     "x": 10 
     }, 
     "lineWidth": 0, 
     "tickWidth": 0 
    }, 
    "yAxis": { 
    "type": "logarithmic", 
     "min": 1000, 
     "labels": { 
     "formatter": function() { 
      return this.value % 1000 === 0 ? this.value/1000 + "k" : this.value; 
     } 
     }, 
     "title": { 
     "text": null 
     } 
    }, 
    "tooltip": { 
     "useHTML": true, 
     "shadow": false 
    }, 
    "plotOptions": { 
     "bar": { 
     "dataLabels": { 
      "enabled": false 
     } 
     }, 
     "series": { 
     "cursor": "pointer" 

     } 
    }, 
    "series": [{ 
     "showInLegend": false, 
     "data": [4951,1200,0,0,196484,179580,0,0,0,324,87014, 11] 
    }] 
    }); 

私は1000をそのままとし、ダニの間にスペースを入れたいと思います。あなたは手動であなたの目盛りの位置を設定したい場合は、互いからの距離が同じになりますので、あなたがtickPositionsまたはtickPositionerを使用することができ、私はダニのオプションで遊んでみましたが、それは

答えて

1

をうまくいかなかった:

"yAxis": { 
    "type": "logarithmic", 
    "min": 1000, 
    "labels": { 
    "formatter": function() { 
     return this.value % 1000 === 0 ? this.value/1000 + "k" : this.value; 
    } 
    }, 
    "tickPositions": [3, 4, 5, 6], 
    "title": { 
    "text": null 
    } 
}, 

このケースでは、tickPositions配列内の数字は10の累乗です。したがって、たとえば3の値を持つ場合、10^3 = 1000の値の目盛りが表示されます。ここで

あなたはそれが動作する方法の例を見つけることができます。 https://jsfiddle.net/2vh9h2q3/1/

あなたは対数軸を使用したい場合は、あなたが小さいか0に等しい値を使用should'tことを覚えておく必要があります。

関連する問題