Как нарисовать график с OFC Python? - PullRequest
0 голосов
/ 28 июля 2011

Мне нужно визуализировать данные для моего плагина trac.Поэтому я хочу использовать Open Flash Charts 2. Попытка следовать this не совсем сработала, как ожидалось.

Вопрос

Chartdataне будет отображаться, единственный вывод - загрузка-анимация OFC.Все выглядит так же, как HTML-источник в учебнике.

Как загрузить данные JSON в мой график?

Дополнительная информация

Я написал шаблон, в который следует вводить обработанные данные.

CHART_TEMPLATE = Template(
              '''
              <script type=\"text/javascript\" src=\"$json_path/json2.js\">
              </script>
              <script type=\"text/javascript\" src=\"$js_path/swfobject.js\">
              </script>
              <script type=\"text/javascript\">
              swfobject.embedSWF(\"$ofc_path/open-flash-chart.swf\", 
\"$chartname\", \"$width\", \"$height\", \"9.0.0\");

              function open_flash_chart_data()
              {
              alert('reading data');
              return JSON.stringify($json_chart_data);
              }

              function ofc_ready()
              {
              alert('ofc_ready');
              }
              </script>

              <div id=\"$chartname\"></div>
              '''
              )

Данные преобразуются в JSON с Python Open Flash Charts, который, кажется, работает хорошо.

def chartdata_from_timetable(self, dict, title):
    '''
    creates chartdata in JSON-format from 2 dim dictionary

    '''
    elements = []
    x_labels = []
    dc = DateConversion.DateConversion()
    # if startdate on a weekend, startdate might 
    not be inluced in the dict->    
    choose next monday
    for key in timetable[startdate]:
        element = Chart()
        element.type = "line"
        element.text = key
        values = []
        for date in dict:
            values.append(dict[date][key])
            x_labels.append(string_from_date(date))
        element.values = values
        elements.append(element)
    chart = Chart()
    chart.x_axis.labels = x_labels
    chart.title.text = title
    chart.elements = elements
    return chart.create().encode()

После этого возвращаются следующие данные, кажется, что ничего не пропущено:

CHART_TEMPLATE.safe_substitute(js_path = config['js_dir'],...,
json_chart_data = chart_data)

1 Ответ

0 голосов
/ 10 октября 2011

Вы должны проверить, правильно ли указан путь к папке ofc в trac.ini.
Функция chartdata_from_timetable также неверна.Вы видите только значения последней записи из-за перезаписи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...