2011-07-28 54 views
0

我需要为我的trac插件可视化数据。因此,我想使用Open Flash Charts 2. 尝试按照this未按预期工作。如何用OFC Python绘制图表?

问题

的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与Open Flash Charts python,这似乎工作得很好。

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) 

回答

0

你必须检查ofc文件夹的trac.ini的路径是正确的。
函数chartdata_from_timetable也是不对的。由于覆盖,您只能看到最后一个条目的值。