Android AChart引擎条形图-向右滚动时隐藏序列

Android AChart引擎条形图-向右滚动时隐藏序列,android,charts,bar-chart,achartengine,Android,Charts,Bar Chart,Achartengine,我正在使用一个优秀的库AChart引擎生成条形图。所有功能都工作正常,但我有两件事无法解决: 这是我的屏幕截图: 现在有两件事需要解决: 1) 向右滚动时隐藏序列,当前即使在0,0之后也可以看到序列进行曲 2) 网格线位于图形的顶部,但应位于图形的后面 3) 如何在右上角而不是右下角显示图例 以下是我的代码: private void openChart(){ int[] x = { 10,20,30,40,50,60,70,80 }; // int[] y =

我正在使用一个优秀的库AChart引擎生成条形图。所有功能都工作正常,但我有两件事无法解决:

这是我的屏幕截图:

现在有两件事需要解决:

1) 向右滚动时隐藏序列,当前即使在0,0之后也可以看到序列进行曲

2) 网格线位于图形的顶部,但应位于图形的后面

3) 如何在右上角而不是右下角显示图例

以下是我的代码:

private void openChart(){
        int[] x = { 10,20,30,40,50,60,70,80 };
       // int[] y = { 10,20,30,40,50,60,70 };
        int[] income = { 20,25,27,30,28,35,37,38};
        int[] expense = {22, 27, 29, 28, 26, 30, 33, 34 };
        int[] sample = {22, 27, 29, 28, 26, 30, 33, 34};

        // Creating an  XYSeries for Income
        XYSeries incomeSeries = new XYSeries("Income");
        // Creating an  XYSeries for Expense
        XYSeries expenseSeries = new XYSeries("Expense");
     // Creating an  XYSeries for Expense
        XYSeries sampleseries = new XYSeries("Sample");
        // Adding data to Income and Expense Series
        for(int i=0;i<x.length;i++){
            incomeSeries.add(i,income[i]);
            expenseSeries.add(i,expense[i]);
            sampleseries.add(i,sample[i]);
        }

        // Creating a dataset to hold each series
        XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
        // Adding Income Series to the dataset
        dataset.addSeries(incomeSeries);
        // Adding Expense Series to dataset
        dataset.addSeries(expenseSeries);
        // Adding Expense Series to dataset
        dataset.addSeries(sampleseries);

        // Creating XYSeriesRenderer to customize incomeSeries
        XYSeriesRenderer incomeRenderer = new XYSeriesRenderer();
        incomeRenderer.setColor(Color.rgb(130, 130, 230));
        incomeRenderer.setFillPoints(true);
        incomeRenderer.setLineWidth(2);
        incomeRenderer.setChartValuesTextAlign(Align.CENTER);
        incomeRenderer.setChartValuesTextSize(18);
        incomeRenderer.setDisplayChartValues(true);

        // Creating XYSeriesRenderer to customize expenseSeries
        XYSeriesRenderer expenseRenderer = new XYSeriesRenderer();
        expenseRenderer.setColor(Color.rgb(220, 80, 80));
        expenseRenderer.setFillPoints(true);
        expenseRenderer.setLineWidth(2);
        expenseRenderer.setChartValuesTextAlign(Align.CENTER);
        expenseRenderer.setChartValuesTextSize(18);
        expenseRenderer.setDisplayChartValues(true);

     // Creating XYSeriesRenderer to customize expenseSeries
        XYSeriesRenderer samplseries = new XYSeriesRenderer();
        samplseries.setColor(Color.rgb(120, 40, 40));
        samplseries.setFillPoints(true);
        samplseries.setLineWidth(2);
        samplseries.setChartValuesTextAlign(Align.CENTER);
        samplseries.setChartValuesTextSize(18);
        samplseries.setDisplayChartValues(true);


        // Creating a XYMultipleSeriesRenderer to customize the whole chart
        XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer();
        multiRenderer.setMargins(new int[]{30,50,60,0});
        multiRenderer.setXRoundedLabels(true);
        multiRenderer.setLegendTextSize(24);
        multiRenderer.setZoomRate(0.2f); 
        multiRenderer.setZoomEnabled(false, false); 
        multiRenderer.setBarSpacing(0.3f); 
        multiRenderer.setXAxisMin(-1); 
        multiRenderer.setXAxisMax(5);
        multiRenderer.setYAxisMin(0);
        multiRenderer.setYAxisMax(50);
        multiRenderer.setAxisTitleTextSize(20); 
        multiRenderer.setAxesColor(Color.BLACK); 
        multiRenderer.setGridColor(Color.GRAY); 
        multiRenderer.setShowGridX(true); 
        multiRenderer.setXLabels(0);

        multiRenderer.setPanLimits(new double[] { -1, x.length, 0, x.length});

        multiRenderer.setLabelsColor(Color.BLACK); 
        multiRenderer.setLabelsTextSize(20);  

        multiRenderer.setXLabelsColor(Color.BLACK); 
        multiRenderer.setXTitle("Tests"); 
        multiRenderer.setYLabelsAlign(Align.RIGHT);
        multiRenderer.setYLabelsColor(0, Color.BLACK);
        multiRenderer.setYTitle("Scores");

        for(int i=0; i< x.length;i++){
            multiRenderer.addXTextLabel(i, mMonth[i]);
        }

        // Adding incomeRenderer and expenseRenderer to multipleRenderer
        // Note: The order of adding dataseries to dataset and renderers to multipleRenderer
        // should be same
        multiRenderer.addSeriesRenderer(incomeRenderer);
        multiRenderer.addSeriesRenderer(expenseRenderer);
        multiRenderer.addSeriesRenderer(samplseries);

        // Creating an intent to plot bar chart using dataset and multipleRenderer
        Intent intent = ChartFactory.getBarChartIntent(getBaseContext(), dataset, multiRenderer, Type.DEFAULT);

        // Start Activity
        startActivity(intent);

    }
private void openChart(){
int[]x={10,20,30,40,50,60,70,80};
//int[]y={10,20,30,40,50,60,70};
int[]收入={20,25,27,30,28,35,37,38};
int[]费用={22,27,29,28,26,30,33,34};
int[]样本={22,27,29,28,26,30,33,34};
//创建收入系列
XYSeries incomeSeries=新XYSeries(“收入”);
//为费用创建XYSeries
XYSeries expenseSeries=新的XYSeries(“费用”);
//为费用创建XYSeries
XYSeries样本系列=新的XYSeries(“样本”);
//向收入和支出系列添加数据
对于(int i=0;i
  • renderer.setMarginsColor()
    并使用正确版本的ACE
  • 把它们藏起来
  • 把它藏起来或者让它保持原样
  • 更新:我还添加了一个新的API调用,允许您避免部分显示在要显示的图表上的值

    renderer.setDisplayBoundingPoints(false);
    

    您可以下载包含此功能的版本。

    你好,丹,对不起,我没听清楚,我了解了第2个和第3个版本。第一个怎么样?使用此版本:我无法复制#1。只需将页边距颜色设置为color.WHITE或类似颜色。渐变开始和停止用于范围条形图,而不是常规图表。谢谢!我很高兴:),我能拿到你的邮箱号吗?这样我们就可以保持联系了