设置 GWT 折线图 mirrorLog

Set GWT Line Chart mirrorLog

我有一个 GWT 折线图,其中横轴包含负数。我想使用对数刻度来呈现这些数据,但我不确定如何设置 HAxis 的 'mirrorLog' 属性。

我可以 hAxis.setLogScale(true); 但这不能处理负值。我正在寻找类似 hAxis.setScaleType("mirrorLog") 的内容,但它似乎不存在。我也在使用 gwt-charts-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 class,它是 jar 中包含的 HAxis class 的精确副本,并添加了 setScaleType() 函数。这不起作用,因为 LineChartOptions 的 setHAxis() 函数只接受 HAxis。

解决方案是创建一个扩展 HAxis 的自定义 HAxis class,然后向其添加 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;
}-*/;
}