2016-05-19 1 views
0

Я знаю, что мы можем найти plotWidth и plotHight после отображения графика. После оказания диаграммы:В Highcharts, в любом случае мы можем получить plotWidth и plotHeight перед рендерингом диаграммы?

var someChart = $("someContainer").Highcharts(someChartOptions); 

Мы можем найти someChart.plotWidth и someChart.plotHeight.

Но кажется, что они вычисляются только после отображения графика. Есть ли способ узнать или предсказать ширину и высоту области печати перед рендерингом.

+0

Держите диаграмму невидимым получить plotWi dth & plotHeight, тогда отобразите его – brk

ответ

1

plotWidth и plotHeight значения рассчитываются динамически при рендеринге. Если вы установили margin, то эти вычисления не выполняются, а вместо этого используются заданные значения. Зная размер диаграммы и полей, вы можете предсказать plotWidth и plotHeight перед созданием диаграммы.

Для диаграммы с набором margin как [50, 20, 80, 70] и размер контейнера Картографическая быть 600px х 400px вы получите (в пикселях):

  • plotHeight = 270 = 400 - (50 + 80)
  • plotWidth = 510 = 600 - (20 + 70)

Пример: http://jsfiddle.net/prc4o789/

+0

Но с включенной легендой размер контейнера снова станет непредсказуемым, есть ли способ, которым мы можем получить ширину или высоту легенды? – Feedfedfat

+0

@Feedfedfat Legend не заставляет изменять размер - если места для легенды недостаточно, тогда он будет перекрывать диаграмму - http://jsfiddle.net/prc4o789/1/. Поэтому вы должны увеличить нижнюю границу - http://jsfiddle.net/prc4o789/2/ –

+0

Большое спасибо, это, кажется, правильный ответ. – Feedfedfat