靈活使用XMultipleSeriesRenderer設置自定義的軸標籤

 

ACE繪製的圖形,座標軸上的刻度值,要麼顯示爲數字,要麼顯示爲時間:

 

那麼能不能在座標軸上顯示自己的內容,比如文字呢?

這需要使用 XYMultipleSeriesRenderer 的addTextLabel(int,String)方法。

該方法接收一個int參數,用於指定要顯示文字的X軸座標,比如在X軸座標1的位置顯示“昆明”,則 addTextLabel(1,”昆明”);

當然,原來tick數字1仍然會顯示,這樣數字“1” 和文字標籤“昆明”會重疊再一起,因此,我們還需要用 setXLabels(0) 把數字標籤屏蔽掉。

具體代碼如下面所示:

// 設置系列 renderer

    public XYMultipleSeriesRenderer getRenderer() {

    // 構造一個多系列 render (多個 renderer 的集合)

        XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();

        renderer.setAxisTitleTextSize(16); // 座標軸標題字體大小: 16

        renderer.setChartTitleTextSize(20); // 圖表標題字體大小: 20

        renderer.setLabelsTextSize(15); // 軸標籤字體大小: 15

        renderer.setLegendTextSize(15); // 圖例字體大小: 15

        renderer.setShowGrid( false ); // 設置網格顯示

        renderer.setXAxisMin( xMin ); // 設置 X 軸起點

        renderer.setAxesColor(Color. WHITE ); // 設置 XY 軸顏色

        renderer.setLabelsColor(Color. GRAY ); // 設置軸標籤顏色

        renderer.setXAxisMax( xMax ); // 設置 X 軸最大點

        renderer.setYAxisMin( yMin ); // 設置 Y 軸起點

//        renderer.setYAxisMax(yMax);

        renderer.setMargins( new int [] {20, 30, 15, 0}); // 圖形 4 邊距

        renderer.setDisplayChartValues( true ); // 在柱子頂端顯示數值

        renderer.setXLabelsAngle(-25); // 設置 X 軸標籤傾斜角度 (clockwise degree)

        renderer.setXLabels(0); // 設置 X 軸不顯示數字(改用我們手動添加的文字標籤)

        int i=0;

        for (Map<String,Object> map: maps ){

        i++;

        String name=map.get( "rowname" ).toString();

        renderer.addTextLabel(i, name);

        }

        // 構造其中一個系列的 render

         SimpleSeriesRenderer r = new SimpleSeriesRenderer();

        r.setColor(Color. YELLOW );

        renderer.addSeriesRenderer(r);

        return renderer;

      }

運行效果如下:

  現在x軸座標上的數字標籤被我們替換爲一系列雲南省地名

http://blog.csdn.net/kmyhy/article/details/6338778
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章