1

我有一个带有两个 y 轴和两条线的 lineChart。我的线条对 x 值和 y 值有不同的设置。

绘制这些线时,第一行 (x1,y1) 看起来应该如此,但第二行 (x2,y2) 使用来自 x1 的 x 值。有没有办法解决这个问题?

下面是使用以下代码的图表的屏幕截图:

        double[] x1 = { 0,1,2,3,4,5 }; 
        double[] x2 = { 0.5, 1.5, 2.5, 4, 6, 7 }; 
        double[] y1 = { 2, 3, 1, 5, 6, 9}; 
        double[] y2 = {7, 1, 6, 3, 9, 2 };   
        XYSeries speedSeries = new XYSeries("speed",0);
        XYSeries accSeries = new XYSeries("acc",1);
        for(int i=0;i<x1.length;i++){
            speedSeries.add(x1[i], y1[i]);
        }
        for(int i=0;i<x2.length;i++){ 
             accSeries.add(x2[i],y2[i]);
        }

        // Creating a dataset to hold each series
        XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); 
        dataset.addSeries(0,speedSeries);
        dataset.addSeries(1,accSeries);
        XYMultipleSeriesRenderer renderer = getRenderer();
        myChartSettings(renderer);
        mChartView2 = ChartFactory.getLineChartView(this, dataset, renderer);

Private void myChartSettings(XYMultipleSeriesRenderer renderer) {
     renderer.setChartTitle("");
     renderer.setShowAxes(true);
     renderer.setShowLegend(false);
     renderer.setYAxisMin(0,0);
     renderer.setYAxisMax(10,0);
     renderer.setYAxisMin(0,1);
     renderer.setYAxisMax(10,1);
     renderer.setYLabelsAlign(Align.RIGHT,0);
     renderer.setYAxisAlign(Align.LEFT, 0);
     renderer.setXTitle("Time");
     renderer.setYTitle("",0);
     renderer.setShowGrid(true);
     renderer.setGridColor(Color.LTGRAY);
     renderer.setXLabels(7);
     renderer.setYLabels(7);
     renderer.setYTitle("", 1);
     renderer.setYAxisAlign(Align.RIGHT, 1);
     renderer.setYLabelsAlign(Align.LEFT, 1);  
     renderer.setZoomButtonsVisible(false);
     renderer.setMarginsColor(Color.GRAY);
     renderer.setInScroll(true);
     renderer.setYLabelsPadding(2);
     renderer.setYLabelsVerticalPadding(2);
     renderer.setLabelsColor(Color.BLACK); 
     renderer.setXLabelsColor(Color.BLACK);
     renderer.setYLabelsColor(0, Color.BLUE);
     renderer.setYLabelsColor(1, Color.RED);
 }

  public XYMultipleSeriesRenderer getRenderer() { 
      XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(2);
      renderer.setAxisTitleTextSize(16);
      renderer.setChartTitleTextSize(20);
      renderer.setLabelsTextSize(15);
      renderer.setLegendTextSize(15);


      XYSeriesRenderer r1 = new XYSeriesRenderer();
      r1.setColor(Color.BLUE);
      renderer.addSeriesRenderer(0,r1);
      XYSeriesRenderer r2 = new XYSeriesRenderer();
      r2.setColor(Color.RED);
      renderer.addSeriesRenderer(1,r2);
      return renderer;
}

由于声誉积分无法上传图片,但可以在此链接中看到图片:https ://www.dropbox.com/s/r0m88v1yuc0appn/bild.JPG

4

1 回答 1

0

这是一个错误。我为你修好了。您可以在此处下载包含此修复程序的版本。

于 2013-07-11T10:01:04.467 回答