设置GWT折线图mirrorLog

时间:2017-04-03 19:31:34

标签: java gwt linechart

我有一个GWT折线图,其中包括横轴的负数。我想使用日志刻度来显示这些数据,但我不确定如何设置' mirrorLog' HAxis的财产。

我可以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"));

1 个答案:

答案 0 :(得分:0)

所以在我昨天提出这个问题之前,我尝试制作一个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;
}-*/;
}