我有一个GWT折线图,其中包括沿水平轴的负数。我想使用对数刻度来呈现这些数据,但我不确定如何设置 HAxis 的"镜像日志"属性。
我可以做hAxis.setLogScale(true);
但这不能处理负值。我正在寻找类似hAxis.setScaleType("mirrorLog")
的东西,但似乎不存在。我也在使用 gwt 图表-0.9.10.jar。
谢谢。
// Prepare the data
DataTable dataTable = DataTable.create();
dataTable.addColumn(ColumnType.NUMBER, "Data Name");
dataTable.addColumn(ColumnType.NUMBER, "Line Name";
dataTable.addRows(myArray.size());
for (int i = 0; i < myArray.size(); i++) {
dataTable.setValue(i, 0, String.valueOf(myArray.get(i)));
}
for(int i = 0; i<values.size(); i++){
dataTable.setValue(i, 1, String.valueOf(values.get(i)));
}
// Set options
LineChartOptions options = LineChartOptions.create();
HAxis hAxis = HAxis.create("HAxis Name");
options.setBackgroundColor("#f0f0f0");
options.setFontName("Tahoma");
options.setHAxis(hAxis);
options.setVAxis(VAxis.create("VAxis Name"));
所以在我昨天问这个问题之前,我尝试制作一个 CustomHAxis 类,它是 jar 中包含的 HAxis 类的精确副本,并添加了 setScaleType(( 函数。这不起作用,因为 LineChartOptions 的 setHAxis(( 函数只接受 HAxis。
解决方案是创建一个扩展 HAxis 的自定义 HAxis 类,然后向其添加一个 setScaleType(( 函数。
public class CustomHAxis extends HAxis {
/**
* Default constructor.
*
* @return a new object instance
*/
public static CustomHAxis create() {
return createObject().cast();
}
/**
* Constructor with title.
*
* @param title
* axis title
*
* @return a new object instance
*/
public static CustomHAxis create(String title) {
CustomHAxis hAxis = createObject().cast();
hAxis.setTitle(title);
return hAxis;
}
protected CustomHAxis() {
}
public final native void setScaleType(String scaleType) /*-{
this.scaleType = scaleType;
}-*/;
}