2013-07-23 34 views

回答

1

我不知道這是在GWT實現支持與否,但在覈心JavaScript實現,你可以在使用「註釋」的角色列LineChart添加一條垂直線。將「字符串」類型列添加到您的DataTable中,緊跟在域(x軸)列之後,爲此列賦予「註釋」角色,併爲需要插入垂直線的任何x軸點輸入註釋標籤行(該列對其他行應該爲空)。在圖表的選項中,將此註釋的樣式指定爲「行」。

function drawChart() { 
    var data = new google.visualization.DataTable(); 
    data.addColumn('string', 'Name'); 
    data.addColumn({type: 'string', role: 'annotation'}); 
    data.addColumn('number', 'Value'); 

    data.addRows([ 
     ['Foo', null, 4], 
     ['Bar', null, 3], 
     ['Baz', null, 7], 
     ['Bat', null, 9], 
     ['Cad', 'Vertical line here', 9], 
     ['Qud', null, 2], 
     ['Piz', null, 6] 
    ]); 

    var chart = new google.visualization.LineChart(document.querySelector('#chart_div')); 
    chart.draw(data, { 
     height: 300, 
     width: 400, 
     annotation: { 
      // index here is the index of the DataTable column providing the annotation 
      1: { 
       style: 'line' 
      } 
     } 
    }); 
} 
+0

感謝提示。我不知道如何將註釋添加到gwt。我是gwt的新手。你知道如何使rpc呼叫gwt嗎?如果我能做到這一點,我可以將你的代碼應用到我的Java腳本文件中 –

+0

我不使用GWT,所以我在那裏幫不了你;我會建議嘗試在列上設置「角色」屬性。註釋選項應該與GWT中的其他圖表選項完全相同。 – asgallant

+0

感謝您的指針,我可以在以下回應中做到這一點 –

0

我能夠做到這一點在GWT的基礎上,從asgallant的提示。下面是代碼

private native void addAnnotationColumn(DataTable data) /*-{ 
     data.addColumn({type:'string', role:'annotation'}); 
    }-*/; 
0
drawAnnotationTableInGWT(){  


private AnnotationChart annotatedChart; 



dataTable.addColumn(ColumnType.DATE,"DateTime");  
     dataTable.addColumn(ColumnType.NUMBER , "fuel capacity");  
     dataTable.addColumn(ColumnType.STRING,"Fuel info");  
     dataTable.addColumn(ColumnType.NUMBER, "Speed (in kmph)");  
     dataTable.addColumn(ColumnType.STRING,"Speed info");   
     //dataTable.addColumn(ColumnType.STRING);  

dataTable.addRows(5);  

dataTable.setValue(0, 0,new Date("10/07/1993")); 




dataTable.setValue(0, 0,22);  
dataTable.setValue(1, 0,"khkjh");  
dataTable.setValue(1, 0,"sggixg");  
dataTable.setValue(0, 0,new Date("10/07/1993"));  
dataTable.getColumnRange(1);  

annotatedChart= new AnnotationChart();  
     annotatedChart.draw(dataTable,options());  
HoriZontalPanel chartPanel.add(annotatedChart);  
     String height=vpMain.getOffsetHeight()-110+"px";  
     annotatedChart.setSize("99%", height);  
     annotatedChart.getElement().getStyle().setPaddingRight(0, Unit.PX);  
     annotatedChart.getElement().getStyle().setPaddingLeft(0, Unit.PX);  
}   
private AnnotationChartOptions options(){  
     AnnotationChartOptions options=AnnotationChartOptions.create();  
     options.setDisplayAnnotations(true);  
     options.setDisplayZoomButtons(false);  
     options.setDisplayLegendDots(true);  
     options.setAnnotationsWidth(20);  
     options.setZoomStartTime(startDate);  
     options.setZoomEndTime(endDate); 
     options.setDisplayExactValues(true); 
     options.setAllowHtml(true); 
     options.setThickness(2); 
     options.setDateFormat("dd-MM-yyyy hh:mm a"); 
     options.setScaleType(ScaleType.ALLFIXED); 
     options.setLegendPosition(ColoredLegendPosition.NEWROW); 
     options.setColors("#66b032","#DC3912","#4684EE"); 
     // options.setAnnotationsWidth(200); 
     return options; 
    }