2011-07-28 6 views
0

trac 플러그인의 데이터를 시각화해야합니다. 따라서 오픈 Flash 차트 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으로 변환된다.

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

답변

0

당신은 trac.iniofc 폴더의 경로를 잘 있는지 확인해야한다 : 그 후 다음과 같은 데이터가 반환됩니다

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() 

은 아무도없는 것으로 보인다.
함수 chartdata_from_timetable도 올바르지 않습니다. 덮어 쓰기 때문에 마지막 항목의 값만 표시됩니다.

관련 문제