【问题标题】:Android :desapeared bar chart with achartengineAndroid : 使用 achartengine 去除条形图
【发布时间】:2014-04-04 11:22:41
【问题描述】:

我正在尝试使用 achartengine 显示条形图,但我得到没有颜色的透明条形图,而且我只是在条形图顶部获得数字(y 坐标)。 我使用了这段代码: 类 SalesStackedBarChart

  public class SalesStackedBarChart extends AbstractDemoChart {
  /**
   * Returns the chart name.
   * 
   * @return the chart name
   */
  public String getName() {
    return "Sales** stacked bar chart";
  }

  /**
   * Returns the chart description.
   * 
   * @return the chart description
   */
  public String getDesc() {
    return "The monthly** sales for the last 2 years (stacked bar chart)";
  }

  /**
   * Executes the chart demo.
   * 
   * @param context the context
   * @return the built intent
   */
  public Intent execute(Context context) {
    String[] titles = new String[] { "2008", "2007" };
    List<double[]> values = new ArrayList<double[]>();
  /*  values.add(new double[] { 14230, 12300, 0, 15244, 15900, 19200, 22030, 21200, 19500, 15500,
        12600, 14000 });
         values.add(new double[] { 5230, 7300, 0, 10540, 7900, 9200, 12030, 11200, 9500, 10500,
        11600, 13500 });*/
     values.add(new double[] { -65, -71, 0, -80, -90, -20, -10, -95, -89, -75,
    -95, -35,-45,-68 });
     values.add(new double[] { -71, -65, 0, -80, -90, -10, -20, -95, -89, -75,
                -95, -35,-45,-68 });

    int[] colors = new int[] { Color.BLUE, Color.CYAN };
    XYMultipleSeriesRenderer renderer = buildBarRenderer(colors);
    setChartSettings(renderer, "Monthly sales in the last 2 years", "Month", "Units sold", 0,
        12, -100, -30, Color.GRAY, Color.LTGRAY);
    renderer.getSeriesRendererAt(0).setDisplayChartValues(true);
    renderer.getSeriesRendererAt(1).setDisplayChartValues(true);
    renderer.setXLabels(12);
    renderer.setYLabels(10);
    renderer.setXLabelsAlign(Align.LEFT);
    renderer.setYLabelsAlign(Align.LEFT);
    renderer.setPanEnabled(true, false);
    // renderer.setZoomEnabled(false);
renderer.setZoomRate(1.1f);
renderer.setBarSpacing(0.5f);


return ChartFactory.getBarChartIntent(context, buildBarDataset(titles, values), renderer,
    Type.STACKED);
  }

}

【问题讨论】:

    标签: android bar-chart achartengine


    【解决方案1】:
    Please follow these step
    
    
    
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
            dataset.addSeries(incomeSeries);
            XYSeriesRenderer incomeRenderer = new XYSeriesRenderer();
            incomeRenderer.setColor(Color.rgb(130, 130, 230));
            incomeRenderer.setFillPoints(true);
            //incomeRenderer.setLineWidth(1); 
            //incomeRenderer.setStroke(BasicStroke.SOLID);
            double max = timetaken1.get(timetaken1.size()-1);
            incomeRenderer.setChartValuesTextSize(15);
            incomeRenderer.setDisplayChartValues(true);
            XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer();
            multiRenderer.setXLabels(0);
            multiRenderer.setChartTitle("Question vs Time Chart");
            multiRenderer.setInScroll(true);
            multiRenderer.setXTitle("Questions");
            multiRenderer.setLabelsColor(Color.BLACK);
            multiRenderer.setAxesColor(Color.BLACK);
            multiRenderer.setXLabelsColor(Color.RED);
            multiRenderer.setYLabelsColor(0, Color.RED);
            multiRenderer.setLabelsTextSize(15);
            multiRenderer.setYLabelsPadding(10);
            multiRenderer.setZoomEnabled(false, false);
            multiRenderer.setPanEnabled(true, false);
            multiRenderer.setLegendTextSize(15);
            multiRenderer.setYAxisMax(max+2);
            multiRenderer.setAxisTitleTextSize(18);
            multiRenderer.setChartTitleTextSize(25);
            int a[]={40,40,0,10};
            multiRenderer.setMargins(a);
            multiRenderer.setTextTypeface("Arial", Typeface.BOLD);
            multiRenderer.setMarginsColor(Color.WHITE);
            multiRenderer.setYTitle("Time Taken");
            //multiRenderer.setZoomButtonsVisible(true);  
            multiRenderer.setBarSpacing(0.1);
            //multiRenderer.setBarWidth(25);
            //multiRenderer.setScale(25);
    
            multiRenderer.setXAxisMin(-1);
            multiRenderer.setXAxisMax(10);
            multiRenderer.setYAxisMin(0);
    
            int i=0;
            for(i=0; i< question1.size();i++){
                multiRenderer.addXTextLabel(i,question1.get(i));
    
                //multiRenderer.addYTextLabel(i,question1.get(i),25); 
            }   
    
            multiRenderer.addSeriesRenderer(incomeRenderer); 
            View v=ChartFactory.getBarChartView(getBaseContext(), dataset, multiRenderer,Type.DEFAULT);
            chartview.addView(v);
        }
    

    【讨论】:

    • 谢谢,但它对我不起作用。我的代码得到了一个向上的条形图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    • 2013-03-22
    • 1970-01-01
    相关资源
    最近更新 更多