使用aChartEngine(Android)组合多个条形图和整体折线图

使用aChartEngine(Android)组合多个条形图和整体折线图,android,charts,Android,Charts,我有一个问题,两条线相互重叠,我不知道如何将它们分开,折线图应该从x=0开始,覆盖整个图表。我搜索了几个论坛,但找不到正确的解决方案… 我的代码: public class MainActivity extends Activity {<br/> private static final int SERIES_NR = 4;<br/> private XYMultipleSeriesDataset mDataset = getDataset();<br/> p

我有一个问题,两条线相互重叠,我不知道如何将它们分开,折线图应该从x=0开始,覆盖整个图表。我搜索了几个论坛,但找不到正确的解决方案…

我的代码:

public class MainActivity extends Activity {<br/>
private static final int SERIES_NR = 4;<br/>
private XYMultipleSeriesDataset mDataset = getDataset();<br/>
private XYMultipleSeriesRenderer mRenderer = getRenderer();<br/>
private GraphicalView mChartView;


protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    setRendererStyling();
    if (mChartView == null) {
        LinearLayout chartContainer = (LinearLayout) findViewById(R.id.chart);
        String[] types = new String[] { BarChart.TYPE,BarChart.TYPE,BarChart.TYPE, LineChart.TYPE };

        mChartView = ChartFactory.getCombinedXYChartView(this, mDataset,
                mRenderer, types);

        mRenderer.setSelectableBuffer(100);
        chartContainer.addView(mChartView, new LayoutParams(
                LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    } else
        mChartView.repaint();
}

private void setRendererStyling() {

    //Color
    mRenderer.setBackgroundColor(Color.BLACK);
    mRenderer.setAxesColor(Color.BLACK);
    mRenderer.setLabelsColor(Color.BLACK);
    mRenderer.setXLabelsColor(Color.BLACK);
    mRenderer.setYLabelsColor(0, Color.BLACK);
    mRenderer.setMarginsColor(Color.WHITE);
    //Size
    mRenderer.setAxisTitleTextSize(30);
    mRenderer.setChartTitleTextSize(30);
    mRenderer.setLabelsTextSize(25);
    mRenderer.setLegendTextSize(30);
    mRenderer.setLegendHeight(250);


    //General settings
    mRenderer.setChartTitle("This Week");
    mRenderer.setXAxisMin(0.5);
    mRenderer.setXAxisMax(10.5);
    mRenderer.setYAxisMin(0);
    mRenderer.setYAxisMax(210);
    mRenderer.addXTextLabel(1, "Mon");
    mRenderer.addXTextLabel(2, "Tue");
    mRenderer.addXTextLabel(3, "Wed");
    mRenderer.addXTextLabel(4, "Thu");
    mRenderer.addXTextLabel(5, "Fri");
    mRenderer.addXTextLabel(6, "Sat");
    mRenderer.addXTextLabel(7, "Sun");
    mRenderer.setYLabelsAlign(Paint.Align.RIGHT);
    mRenderer.setBarSpacing(0.5);
    mRenderer.setXTitle("X-Axis");
    mRenderer.setYTitle("Y-Axis");
    mRenderer.setShowGrid(true);
    mRenderer.setGridColor(Color.GRAY);
    mRenderer.setXLabels(0);

}

private XYMultipleSeriesDataset getDataset() {

    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    final int nr = 7;
    Random r = new Random();
    ArrayList<String> legendTitles = new ArrayList<String>();
    legendTitles.add("Bar1");
    legendTitles.add("Bar2");
    legendTitles.add("Bar3");
    legendTitles.add("Line1");
    for (int i = 0; i < SERIES_NR; i++) {
        CategorySeries series = new CategorySeries(legendTitles.get(i));
        for (int k = 0; k < nr; k++) {
            series.add(100 + r.nextInt() % 100);
        }
        dataset.addSeries(series.toXYSeries());
    }
    return dataset;

}

private XYMultipleSeriesRenderer getRenderer() {
    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
    renderer.setAxisTitleTextSize(16);
    renderer.setChartTitleTextSize(20);
    renderer.setLabelsTextSize(15);
    renderer.setLegendTextSize(15);
    renderer.setMargins(new int[]{30, 40, 15, 0});

    //Bar1
    SimpleSeriesRenderer r = new SimpleSeriesRenderer();
    r.setColor(Color.BLUE);
    renderer.addSeriesRenderer(r);
    //Bar2
    r = new SimpleSeriesRenderer();
    r.setColor(Color.parseColor("#ff8c00"));
    renderer.addSeriesRenderer(r);
    //Bar3
    r = new SimpleSeriesRenderer();
    r.setColor(Color.parseColor("#696969"));
    renderer.addSeriesRenderer(r);
    // Line1
    XYSeriesRenderer sollRenderer = new XYSeriesRenderer();
    sollRenderer.setColor(Color.GREEN);
    sollRenderer.setPointStyle(PointStyle.CIRCLE);
    sollRenderer.setFillPoints(true);
    sollRenderer.setLineWidth(3);
    sollRenderer.setDisplayChartValues(true);
    renderer.addSeriesRenderer(sollRenderer);

    return renderer;
}
public类MainActivity扩展活动{
私有静态最终整数系列\u NR=4;
私有XYmultiplesseriesdataset mDataset=getDataset();
私有XYMultipleReseriesRenderer mrender=getRenderer();
private GraphicalView mChartView; 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setRenderStyleing(); 如果(mChartView==null){ LinearLayout chartContainer=(LinearLayout)findViewById(R.id.chart); 字符串[]类型=新字符串[]{BarChart.TYPE,BarChart.TYPE,BarChart.TYPE,LineChart.TYPE}; mChartView=ChartFactory.getCombinedXYChartView(此,mDataset, mrender,类型); mrender.setSelectableBuffer(100); chartContainer.addView(mChartView,新布局参数( LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT); }否则 mChartView.repaint(); } 私有void setRenderStyleing(){ //颜色 mRenderer.setBackgroundColor(颜色:黑色); mrender.setAxesColor(颜色:黑色); mrender.setLabelsColor(Color.BLACK); mrender.setXLabelsColor(Color.BLACK); mRenderer.setYLabelsColor(0,颜色.黑色); mrender.setMarginsColor(Color.WHITE); //大小 mrender.setAxisTitleTextSize(30); mRenderer.SetChartTitleExtSize(30); mrender.setLabelsTextSize(25); mrender.setLegendTextSize(30); mRenderer.setLegendHeight(250); //一般设置 mRenderer.setChartTitle(“本周”); mrender.setXAxisMin(0.5); setXAxisMax(10.5); mrender.setYAxisMin(0); setYAxisMax(210); mrender.addxtlabel(1,“Mon”); mrender.addxtlabel(2,“周二”); mrender.addxtlabel(3,“Wed”); mrender.addxtlabel(4,“Thu”); mrender.addxtlabel(5,“Fri”); mrender.addxtlabel(6,“Sat”); mrender.addxtlabel(7,“Sun”); mrender.setYLabelsAlign(Paint.Align.RIGHT); mrender.setbarspace(0.5); mrender.setXTitle(“X轴”); mRenderer.Setytile(“Y轴”); mrender.setShowGrid(真); mrender.setGridColor(Color.GRAY); mrender.setXLabels(0); } 私有XYMultipleSeriesDataset getDataset(){ XYmultiplesseriesdataset数据集=新的XYmultiplesseriesdataset(); 最终int nr=7; 随机r=新随机(); ArrayList legendTitles=新的ArrayList(); legendTitles.添加(“Bar1”); legendTitles.添加(“Bar2”); legendTitles.添加(“Bar3”); legendTitles.添加(“第1行”); 对于(int i=0;i
}