如何在highcharts中添加图表和轴之间的空间

时间:2016-07-25 05:01:44

标签: highcharts highstock

我正在使用hightcharts的hightstock。但是我希望在图表与yAxis之间创建空间,如图像

需要创造空间:

enter image description here

4 个答案:

答案 0 :(得分:0)

您可以尝试marginRight,如下所示;



$(function () {

var options = {
    chart: {
        renderTo: 'container',
        marginRight: 300

    },
    navigator:{
        enabled:true
    },
    scrollbar: {
        enabled:true
    },

    rangeSelector: {
        enabled: true,
	    //selected: 1
    },  
    xAxis: {
        gridLineWidth: 1,
        labels: {
            rotation: -45,
            align: 'right',
            style: {
                fontSize: '13px',
                fontFamily: 'Verdana, sans-serif'
            }
        }
    },
    yAxis: [
    {
        height: 150,
        lineWidth: 2,
        offset: 0,
        title: {
            text: 'Price',
        }
    },
    {
        top: 225,
        //lineWidth: 0,
        //min: 0,
        //max: 5,
        gridLineWidth: 0,
        offset: 0,
        height: 100,
        title: {
            text: 'Volume',
        }
    },
    ],
   
    series: [
    {
        yAxis: 0,
        name: 'Price by time',
        stack: 0,

        //data: [1, 12, 32, 43],       
        data: [[1147651200000,67.79],[1147737600000,64.98],[1147824000000,65.26],[1147910400000,63.18],[1147996800000,64.51],[1148256000000,63.38],[1148342400000,63.15],[1148428800000,63.34],[1148515200000,64.33],[1148601600000,63.55],[1148947200000,61.22],[1149033600000,59.77],[1149120000000,62.17],[1149206400000,61.66],[1149465600000,60.00],[1149552000000,59.72],[1149638400000,58.56],[1149724800000,60.76],[1149811200000,59.24],[1150070400000,57.00],[1150156800000,58.33],[1150243200000,57.61],[1150329600000,59.38],[1150416000000,57.56],[1150675200000,57.20],[1150761600000,57.47],[1150848000000,57.86],[1150934400000,59.58],[1151020800000,58.83],[1151280000000,58.99],[1151366400000,57.43],[1151452800000,56.02],[1151539200000,58.97],[1151625600000,57.27],[1151884800000,57.95],[1152057600000,57.00],[1152144000000,55.77],[1152230400000,55.40],[1152489600000,55.00],[1152576000000,55.65],[1152662400000,52.96],[1152748800000,52.25],[1152835200000,50.67],[1153094400000,52.37],[1153180800000,52.90],[1153267200000,54.10],[1153353600000,60.50],[1153440000000,60.72],[1153699200000,61.42],[1153785600000,61.93],[1153872000000,63.87],[1153958400000,63.40],[1154044800000,65.59],[1154304000000,67.96],[1154390400000,67.18],[1154476800000,68.16],[1154563200000,69.59],[1154649600000,68.30],[1154908800000,67.21],[1154995200000,64.78],[1155081600000,63.59],[1155168000000,64.07],[1155254400000,63.65],[1155513600000,63.94],[1155600000000,66.45],[1155686400000,67.98],[1155772800000,67.59],[1155859200000,67.91],[1156118400000,66.56],[1156204800000,67.62],[1156291200000,67.31],[1156377600000,67.81],[1156464000000,68.75],[1156723200000,66.98],[1156809600000,66.48],[1156896000000,66.96],[1156982400000,67.85],],
		tooltip: {
			valueDecimals: 2
		},           
    },
    {
        name: 'Volume by time',
        yAxis: 1,
        stack: 0,
        data: [[1147651200000,67.79],[1147737600000,64.98],[1147824000000,65.26],[1147910400000,63.18],[1147996800000,64.51],[1148256000000,63.38],[1148342400000,63.15],[1148428800000,63.34],[1148515200000,64.33],[1148601600000,63.55],[1148947200000,61.22],[1149033600000,59.77],[1149120000000,62.17],[1149206400000,61.66],[1149465600000,60.00],[1149552000000,59.72],[1149638400000,58.56],[1149724800000,60.76],[1149811200000,59.24],[1150070400000,57.00],[1150156800000,58.33],[1150243200000,57.61],[1150329600000,59.38],[1150416000000,57.56],[1150675200000,57.20],[1150761600000,57.47],[1150848000000,57.86],[1150934400000,59.58],[1151020800000,58.83],[1151280000000,58.99],[1151366400000,57.43],[1151452800000,56.02],[1151539200000,58.97],[1151625600000,57.27],[1151884800000,57.95],[1152057600000,57.00],[1152144000000,55.77],[1152230400000,55.40],[1152489600000,55.00],[1152576000000,55.65],[1152662400000,52.96],[1152748800000,52.25],[1152835200000,50.67],[1153094400000,52.37],[1153180800000,52.90],[1153267200000,54.10],[1153353600000,60.50],[1153440000000,60.72],[1153699200000,61.42],[1153785600000,61.93],[1153872000000,63.87],[1153958400000,63.40],[1154044800000,65.59],[1154304000000,67.96],[1154390400000,67.18],[1154476800000,68.16],[1154563200000,69.59],[1154649600000,68.30],[1154908800000,67.21],[1154995200000,64.78],[1155081600000,63.59],[1155168000000,64.07],[1155254400000,63.65],[1155513600000,63.94],[1155600000000,66.45],[1155686400000,67.98],[1155772800000,67.59],[1155859200000,67.91],[1156118400000,66.56],[1156204800000,67.62],[1156291200000,67.31],[1156377600000,67.81],[1156464000000,68.75],[1156723200000,66.98],[1156809600000,66.48],[1156896000000,66.96],[1156982400000,67.85],],
		tooltip: {
			valueDecimals: 2
		},  
        lineWidth: 3,
        marker: {
            enabled: false
        },

        type: 'column',
    },
    ]

};

var chart = new Highcharts.Chart(options);

});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="http://code.highcharts.com/stock/highstock.js"></script>
<script src="http://code.highcharts.com/stock/modules/exporting.js"></script>

<div id="container" style="height: 500px; min-width: 500px"></div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我还想在hihghstock图表的末尾添加空格,我在json中请求ohlc然后将其保存在变量中之后我在其结尾处推了10点

var timestamp = data[data.length-1][0];

//add 10 point at the end for blank space
for(var i=0;i<=10;i++){
   var added=[timestamp+(60*i*1000),null,null,null,null];
   console.log(added);
   data.push(added);
}

时间戳中的乘法是因为我得到的json响应。

enter image description here

答案 2 :(得分:0)

你应该做下一步:

1)为图表添加边距(例如100)

marginRight: 100

2)添加yAxis的偏移量,右侧为属性'labels':

 yAxis: [{
            labels:{
            align:'right',
            x:90
            }
}]

3)禁用y轴绘图线以获得更好的视图(如果需要) Look at my chart

答案 3 :(得分:0)

不幸的是,所提供的解决方案都没有奏效,因此发布了新的解决方案。请记住,此功能仅适用于HighChart,而不适用于HighStock

https://jsfiddle.net/donofclass/jmpfzkas/2/

Highcharts.setOptions({
        global: {
            useUTC: false
        }
    });
var options = {
        chart: {
            type: 'line',
            renderTo: 'container',
            marginRight: 100,
            animation: false,
            events: {
                redraw: function (values) {

                },
                load: function (evt) {
                }
            }
        },
        yAxis: [{
            height: "60%",
            lineWidth: 2,
            opposite: false
        }, {

            top: "62%",
            height: "35%",
            offset: 0,
            lineWidth: 2,
            opposite: false
        }],
        xAxis: {
            type: 'datetime',
            gridLineWidth: 1,
            dataLabels: { enabled: true }
        },
        boost: {
            //useGPUTranslations: true,
            //usePreAllocated: true
        },
        legend: {
            itemHiddenStyle: {
                color: 'white'
            },
            layout: 'horizontal',
            align: 'right',
            verticalAlign: 'top',
            floating: true,
            symbolRadius: 0,
            symbolPadding: 15
        },

        plotOptions: {
            series: {
                marker: {
                    radius: 5,
                    states: {
                        hover: {
                            enabled: true,
                            lineColor: 'rgb(100,100,100)'
                        }
                    }
                }, dataGrouping: {
                    enabled: false,
                },

                pointWidth: 0//width of the column bars irrespective of the chart size
            }
        },

        title: {
            text: 'Live random data',
            align: 'center',
            verticalAlign: 'bottom',
            style: {
                // margin: '50px', // does not work for some reasons
                color: '#707070',
                fontSize: '12px',
                fontWeight: 'normal',
                fontStyle: 'none',
                textTransform: 'none'
            }
        },

        exporting: {
            enabled: false
        },
        rangeSelector: {
            selected: 1,
            buttonTheme: {
                visibility: 'hidden'
            }, labelStyle: {
                visibility: 'hidden'
            },
            inputEnabled: false,
        },

        series: [{
            name: 'green',
            color: 'black',
            marker: {
                enabled: false
            },

            data: (function () {
                var data = [];
                return data;
            }())
        }, {
            name: "green",
            type: 'column',
            yAxis: 1,
            color: '#2DC06A',
            visible: true,
            data: (function () {
                var data = [];
                return data;
            }())
        }, {
            name: "red",
            type: 'column',
            yAxis: 1,
            color: '#ED4944',
            visible: true,
            data: (function () {
                var data = [];
                return data;
            }())
        }]
    }
    

var chart=Highcharts.chart('container',options);
  chart.update({
  xAxis:{
  max:1523148945
  }
  })
chart.series[0].setData([[1523124945,12],[1523125945,14],[1523128945,11]],false);
chart.series[1].setData([[1523124945,122],[1523125945,142],[1523128945,11]],false);
chart.series[2].setData([[1523124945,122],[1523125945,142],[1523128945,11]],true);
<script src="https://code.highcharts.com/highcharts.js"></script>
<h1>This feature works only in highchart and not in highstocks<h1>
<div id="container" style="height: 300px"></div>