org.achartengine.model.CategorySeries Java Examples

The following examples show how to use org.achartengine.model.CategorySeries. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ReportActivity.java    From financisto with GNU General Public License v2.0 6 votes vote down vote up
private Intent createPieChart() {
    DefaultRenderer renderer = new DefaultRenderer();
    renderer.setLabelsTextSize(getResources().getDimension(R.dimen.report_labels_text_size));
    renderer.setLegendTextSize(getResources().getDimension(R.dimen.report_legend_text_size));
    renderer.setMargins(new int[] { 0, 0, 0, 0 });
    ReportData report = currentReport.getReportForChart(db, WhereFilter.copyOf(filter));
    CategorySeries series = new CategorySeries("AAA");
    long total = Math.abs(report.total.amount)+Math.abs(report.total.balance);
    int[] colors = generateColors(2*report.units.size());
    int i = 0;
    for (GraphUnit unit : report.units) {
        addSeries(series, renderer, unit.name, unit.getIncomeExpense().income, total, colors[i++]);
        addSeries(series, renderer, unit.name, unit.getIncomeExpense().expense, total, colors[i++]);
    }
    renderer.setZoomButtonsVisible(true);
    renderer.setZoomEnabled(true);
    renderer.setChartTitleTextSize(20);
    return ChartFactory.getPieChartIntent(ReportActivity.this, series, renderer, getString(R.string.report));
}
 
Example #2
Source File: TwoFragment.java    From accountBook with Apache License 2.0 5 votes vote down vote up
/**
 * 生成饼图
 */
private void initPieChart(View v){
    CategorySeries dataset = buildCategoryDataset("图文报表", values);
    DefaultRenderer renderer = buildCategoryRenderer(colors);

    ll_expense_piechart = (LinearLayout) v.findViewById(R.id.ll_expense_piechart);
    ll_expense_piechart.removeAllViews();

    graphicalView = ChartFactory.getPieChartView(getContext()
            ,dataset, renderer);//饼状图
    graphicalView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

    ll_expense_piechart.addView(graphicalView);
}
 
Example #3
Source File: TwoFragment.java    From accountBook with Apache License 2.0 5 votes vote down vote up
/**
 * 构建数据集
 * @param title
 * @param values
 * @return
 */
protected CategorySeries buildCategoryDataset(String title, double[] values){
    CategorySeries series = new CategorySeries(title);
    series.add("房租:"+values[0], values[0]/sumVal);
    series.add("伙食费:"+values[1], values[1]/sumVal);
    series.add("生活费:"+values[2], values[2]/sumVal);
    series.add("其它:"+values[3], values[3]/sumVal);
    return series;
}
 
Example #4
Source File: ReportActivity.java    From financisto with GNU General Public License v2.0 5 votes vote down vote up
private void addSeries(CategorySeries series, DefaultRenderer renderer, String name, BigDecimal expense, long total, int color) {
    long amount = expense.longValue();
    if (amount != 0 && total != 0) {
        long percentage = 100*Math.abs(amount)/total;
        series.add((amount > 0 ? "+" : "-") + name + "(" + percentage + "%)", percentage);
        SimpleSeriesRenderer r = new SimpleSeriesRenderer();
        r.setColor(color);
        renderer.addSeriesRenderer(r);
    }
}
 
Example #5
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 5 votes vote down vote up
private static void a(CategorySeries categoryseries, DefaultRenderer defaultrenderer)
{
    if (categoryseries == null || defaultrenderer == null || categoryseries.getItemCount() != defaultrenderer.getSeriesRendererCount())
    {
        throw new IllegalArgumentException("Dataset and renderer should be not null and the dataset number of items should be equal to the number of series renderers");
    } else
    {
        return;
    }
}
 
Example #6
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 5 votes vote down vote up
public static final Intent getDialChartIntent(Context context, CategorySeries categoryseries, DialRenderer dialrenderer, String s)
{
    a(categoryseries, dialrenderer);
    Intent intent = new Intent(context, org/achartengine/GraphicalActivity);
    intent.putExtra("chart", new DialChart(categoryseries, dialrenderer));
    intent.putExtra("title", s);
    return intent;
}
 
Example #7
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 5 votes vote down vote up
public static final Intent getPieChartIntent(Context context, CategorySeries categoryseries, DefaultRenderer defaultrenderer, String s)
{
    a(categoryseries, defaultrenderer);
    Intent intent = new Intent(context, org/achartengine/GraphicalActivity);
    intent.putExtra("chart", new PieChart(categoryseries, defaultrenderer));
    intent.putExtra("title", s);
    return intent;
}
 
Example #8
Source File: RoundChart.java    From MiBandDecompiled with Apache License 2.0 5 votes vote down vote up
public RoundChart(CategorySeries categoryseries, DefaultRenderer defaultrenderer)
{
    mCenterX = 0x7fffffff;
    mCenterY = 0x7fffffff;
    mDataset = categoryseries;
    mRenderer = defaultrenderer;
}
 
Example #9
Source File: ObdGaugeAdapter.java    From AndrOBD with GNU General Public License v3.0 5 votes vote down vote up
@Override
public void pvChanged(PvChangeEvent event)
{
	if(event.getKey().equals(EcuDataPv.FIELDS[EcuDataPv.FID_VALUE])
			&& event.getValue() instanceof Number)
	{
		ProcessVar currPv = (ProcessVar) event.getSource();
		CategorySeries series = (CategorySeries) currPv.get(FID_GAUGE_SERIES);
		series.set(0,
				   String.valueOf(currPv.get(EcuDataPv.FID_UNITS)),
				   ((Number)event.getValue()).doubleValue());
	}
}
 
Example #10
Source File: AbstractChart.java    From gsn with GNU General Public License v3.0 5 votes vote down vote up
/**
 * Builds a category series using the provided values.
 * 
 * @param titles the series titles
 * @param values the values
 * @return the category series
 */
protected CategorySeries buildCategoryDataset(String title, double[] values) {
  CategorySeries series = new CategorySeries(title);
  int k = 0;
  for (double value : values) {
    series.add("Project " + ++k, value);
  }

  return series;
}
 
Example #11
Source File: AbstractChart.java    From gsn with GNU General Public License v3.0 5 votes vote down vote up
/**
 * Builds a bar multiple series dataset using the provided values.
 * 
 * @param titles the series titles
 * @param values the values
 * @return the XY multiple bar dataset
 */
protected XYMultipleSeriesDataset buildBarDataset(String[] titles, List<double[]> values) {
  XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
  int length = titles.length;
  for (int i = 0; i < length; i++) {
    CategorySeries series = new CategorySeries(titles[i]);
    double[] v = values.get(i);
    int seriesLength = v.length;
    for (int k = 0; k < seriesLength; k++) {
      series.add(v[k]);
    }
    dataset.addSeries(series.toXYSeries());
  }
  return dataset;
}
 
Example #12
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 4 votes vote down vote up
public static final GraphicalView getDialChartView(Context context, CategorySeries categoryseries, DialRenderer dialrenderer)
{
    a(categoryseries, dialrenderer);
    return new GraphicalView(context, new DialChart(categoryseries, dialrenderer));
}
 
Example #13
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 4 votes vote down vote up
public static final GraphicalView getPieChartView(Context context, CategorySeries categoryseries, DefaultRenderer defaultrenderer)
{
    a(categoryseries, defaultrenderer);
    return new GraphicalView(context, new PieChart(categoryseries, defaultrenderer));
}
 
Example #14
Source File: PieChart.java    From MiBandDecompiled with Apache License 2.0 4 votes vote down vote up
public PieChart(CategorySeries categoryseries, DefaultRenderer defaultrenderer)
{
    super(categoryseries, defaultrenderer);
    a = new PieMapper();
}
 
Example #15
Source File: DialChart.java    From MiBandDecompiled with Apache License 2.0 4 votes vote down vote up
public DialChart(CategorySeries categoryseries, DialRenderer dialrenderer)
{
    super(categoryseries, dialrenderer);
    b = dialrenderer;
}
 
Example #16
Source File: ObdGaugeAdapter.java    From AndrOBD with GNU General Public License v3.0 4 votes vote down vote up
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
	ViewHolder holder;
	EcuDataPv currPv = getItem(position);
	int pid = Objects.requireNonNull(currPv).getAsInt(EcuDataPv.FID_PID);

	// if no recycled convertView delivered, then create a new one
	if (convertView == null)
	{
		convertView = mInflater.inflate(resourceId, parent, false);

		holder = new ViewHolder();
		// get all views into view holder
		holder.gauge = convertView.findViewById(R.id.gauge);
		holder.tvDescr = convertView.findViewById(R.id.label);

		// remember this view holder
		convertView.setTag(holder);
	}
	else
	{
		// recall previous holder
		holder = (ViewHolder)convertView.getTag();
	}

	convertView.getLayoutParams().width = minWidth;
	convertView.getLayoutParams().height = minHeight;

	// if no rendering component is registered with PV, then create and register new one
	DialChart chartView = (DialChart)currPv.getRenderingComponent();
	if(chartView == null)
	{
		CategorySeries category = (CategorySeries) currPv.get(FID_GAUGE_SERIES);

		Number minValue = (Number) currPv.get(EcuDataPv.FID_MIN);
		Number maxValue = (Number) currPv.get(EcuDataPv.FID_MAX);
		if (minValue == null) minValue = 0f;
		if (maxValue == null) maxValue = 255f;

		DialRenderer renderer = new DialRenderer();
		renderer.setScale(1.25f);

		// dial background
		renderer.setPanEnabled(false);
		renderer.setShowLegend(false);
		renderer.setShowLabels(true);

		renderer.setLabelsTextSize(mDisplayMetrics.densityDpi / 10);
		renderer.setLabelsColor(Color.WHITE);
		renderer.setShowLabels(true);

		renderer.setVisualTypes(new DialRenderer.Type[]{DialRenderer.Type.NEEDLE});

		renderer.setMinValue(minValue.doubleValue());
		renderer.setMaxValue(maxValue.doubleValue());

		renderer.setChartTitle(currPv.getUnits());
		renderer.setChartTitleTextSize(mDisplayMetrics.densityDpi/10);

		SimpleSeriesRenderer r = new SimpleSeriesRenderer();
		r.setColor(ChartActivity.getItemColor(pid!=0?pid:position));
		try
		{
			r.setChartValuesFormat(labelFormat);
		}
		catch (Exception e)
		{
			// ignore
		}
		renderer.addSeriesRenderer(0, r);


		// create chart view and register with PV
		chartView = new DialChart(category, renderer);
		currPv.setRenderingComponent(chartView);
	}
	convertView.setBackgroundColor(ChartActivity.getItemColor(pid!=0?pid:position) & 0x08FFFFFF);

	// set new values for display
	holder.tvDescr.setTextColor(ChartActivity.getItemColor(pid!=0?pid:position));
	holder.tvDescr.setText(String.valueOf(currPv.get(EcuDataPv.FID_DESCRIPT)));
	// replace DialChart if needed
	holder.gauge.removeViewAt(0);
	holder.gauge.addView(new GraphicalView(getContext(), chartView), 0);

	return convertView;
}