Подтвердить что ты не робот

Круговая диаграмма флота дает ошибку в firebug: "uncaught exception: недопустимые размеры для графика, width = null, height = null"

Я использую flot круговую диаграмму для построения круговых диаграмм. но он показывает ошибку в firebug, что

исключение uncaught: недопустимые размеры для графика, width = null, height = null

Я дал высоту и ширину из таблицы стилей. и пробовал также как это

<div id="placeholder1" style="width:140px;height:140px" ></div>

как решить эту проблему?

4b9b3361

Ответ 1

Отметьте:

  • Сначала вы включаете библиотеку jQuery, а затем библиотеку flot js

  • Оберните весь код в функции обработчика $(document).ready().

  • вы привязываете флот с правильным id, и нет повторения одного и того же id.

  • если ваш div является динамическим, то появился DOM после загрузки страницы, затем привяжите plot() после элемент появился в DOM.

Ответ 2

У меня также была та же проблема. Я установил высоту и ширину тега <div> и исправил ошибку.

Вы можете использовать встроенный css (как я) или JS для установки высоты и ширины. Но функцию plot() следует вызывать только после того, как мы установим высоту <div>

<div class="bars_two" style="height:300px;"></div>

Ответ 3

У меня тоже была эта проблема! Ответ не был указан выше, так что вот моя проблема и решение.

<div id="chart" class="chart" style="width:100%;height:250px;"></div>

JavaScript:

 <script type="text/javascript">
    $(document).ready(function () {
        var data = [...];
        var options = {...};
        $.plot($("#placeholder"), data, options);
    });
</script>

Итак. Обратите внимание на функцию графика. Сначала у меня не было # в первом параметре. Это необходимо, по-видимому. Он решил мои проблемы.

GG.

Ответ 4

Быстрое решение, которое я нашел, - просто набрать что-то между тегами div. Например: + Изменить <div id="placeholder"></div> в <div id="placeholder">.</div> или <div id="placeholder">randomtext</div>.

Лично я обнаружил, что использование пробелов/вкладок/новых строк не работает в этом быстром решении.

Ответ 5

У меня была та же проблема, что и интеграция шаблона с рельсами. Это плохо, но я просто комментирую строку, которая генерирует исключение и добавляет 2 строки, чтобы установить ширину и высоту в 0 - это мне помогло.

Canvas.prototype.resize = function(width, height) {

  if (width <= 0 || height <= 0) {
    // COMMENTED NEXT LINE
    // throw new Error("Invalid dimensions for plot, width = " + width + ", height = " + height);
    // NEW LINES ADDED
    width = 0;
    height = 0;
  }

  // ... others code 
}

Ответ 6

Если вы поместите диаграмму html в div, которой задан класс "display: none", вы получите эту ошибку. Вы должны поместить свой html диаграммы в div, которому присваивается класс "display: block", когда загружается "jquery.flot.js".

<div id="pie_chart" class="chart"> </div>

если этот html находится в любом div, который имеет class="display: none", когда загружается "jquery.flot.js", измените его на display: block

Ответ 7

Итак, кажется, что перед отображением диаграммы вам нужно повторно выбрать элемент DOM. Так как флот манипулирует элементами и вставляет свои собственные, похоже, что он заменяет элемент своими собственными элементами.

В рендере выполните следующие действия:

$.plot($(".myChartId || #myChartClass"), myData, myOptions);

Это не имеет никакого отношения к тому, чтобы быть в $(document).ready(), хотя это хорошая практика, чтобы поместить его внутри этого.

Надеюсь, это поможет!