AChartEngine point size - android

I m using AChartEngine for generating scatter chart. I m currently using XYMultipleSeriesRenderer for rendering two scatter charts in a single graph view. How can i set different point size for each of the scatter charts
final XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
.
.
renderer.setPointSize(5.5f); // this changes point size for all scatter charts
// Scatter chart1
XYSeriesRenderer r1 = new XYSeriesRenderer();
r1.setColor(Color.BLACK);
r1.setPointStyle(PointStyle.CIRCLE);
r1.setFillPoints(true);
renderer.addSeriesRenderer(r1);
// Scatter chart2
XYSeriesRenderer r2 = new XYSeriesRenderer();
r2.setColor(Color.YELLOW);
r2.setPointStyle(PointStyle.CIRCLE);
r2.setFillPoints(true);
renderer.addSeriesRenderer(r2);
I want both the scatter charts to have different radii for the points. Any help will be appreciated. Thank you

You can use
mRenderer.setPointSize(20);
where
private XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();

Related

achartengine fill out side in linechart

I have a problem with fill out side in linechart below. Here is a demo that i have draw. How can i remove the area in red block.
XYSeriesRenderer renderer = new XYSeriesRenderer();
renderers.addSeriesRenderer(renderer);
renderer.setLineWidth(2f);
renderer.setPointStrokeWidth(7f);
renderer.setPointStyle(PointStyle.CIRCLE);
FillOutsideLine below = new FillOutsideLine(FillOutsideLine.Type.BELOW);
renderer.addFillOutsideLine(below);

remove titles, labels, legends from achartengine Android

I am trying to draw a chart(like below image) using achart engine library in android.
DESIRED_CHART.png
Here is what i achieved
CURRENT_CHART.png
Code to draw this is as below
private void drawChart(){
int[] x = { 1,2,3,4,5,6,7,8 };
int[] happyness = { 5,2,4,1,0,4,5,0};
int[] energy = { 5,4,3,1,4,3,5,0};
int[] strenth = { 2,0,1,3,2,4,3,0};
int[] endurance = { 0,2,1,4,3,5,2,0};
// Creating an XYSeries for Income
XYSeries happynessSeries = new XYSeries("Happyness");
// Creating an XYSeries for Income
XYSeries energySeries = new XYSeries("Energy");
// Adding data to Income and Expense Series
XYSeries strenthSeries = new XYSeries("Strenth");
XYSeries enduranceSeries = new XYSeries("Endurance");
for(int i=0;i<x.length;i++){
happynessSeries.add(x[i], happyness[i]);
energySeries.add(x[i],energy[i]);
strenthSeries.add(x[i],strenth[i]);
enduranceSeries.add(x[i],endurance[i]);
}
// Creating a dataset to hold each series
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
// Adding Income Series to the dataset
dataset.addSeries(happynessSeries);
// Adding Expense Series to dataset
dataset.addSeries(energySeries);
dataset.addSeries(strenthSeries);
dataset.addSeries(enduranceSeries);
// Creating XYSeriesRenderer to customize incomeSeries
XYSeriesRenderer happynessRenderer = new XYSeriesRenderer();
happynessRenderer.setColor(Color.parseColor("#f4ed21"));//chart border color
happynessRenderer.setPointStyle(PointStyle.CIRCLE);
happynessRenderer.setFillPoints(true);
happynessRenderer.setLineWidth(2);
happynessRenderer.setDisplayChartValues(true);
happynessRenderer.setFillBelowLine(true);
happynessRenderer.setFillBelowLineColor(Color.parseColor("#bbf4ed21"));
// Creating XYSeriesRenderer to customize expenseSeries
XYSeriesRenderer energyRenderer = new XYSeriesRenderer();
energyRenderer.setColor(Color.parseColor("#20bff2"));
energyRenderer.setPointStyle(PointStyle.CIRCLE);
energyRenderer.setFillPoints(true);
energyRenderer.setLineWidth(2);
energyRenderer.setDisplayChartValues(true);
energyRenderer.setFillBelowLine(true);
energyRenderer.setFillBelowLineColor(Color.parseColor("#bb20bff2"));
// strenth
XYSeriesRenderer strenthRenderer = new XYSeriesRenderer();
strenthRenderer.setColor(Color.parseColor("#f97b1d"));
strenthRenderer.setPointStyle(PointStyle.CIRCLE);
strenthRenderer.setFillPoints(true);
strenthRenderer.setLineWidth(2);
strenthRenderer.setDisplayChartValues(true);
strenthRenderer.setFillBelowLine(true);
strenthRenderer.setFillBelowLineColor(Color.parseColor("#bbf97b1d"));
// endurance
XYSeriesRenderer enduranceRenderer = new XYSeriesRenderer();
enduranceRenderer.setColor(Color.parseColor("#c68c4d"));
enduranceRenderer.setPointStyle(PointStyle.CIRCLE);
enduranceRenderer.setFillPoints(true);
enduranceRenderer.setLineWidth(2);
enduranceRenderer.setDisplayChartValues(true);
enduranceRenderer.setFillBelowLine(true);
enduranceRenderer.setFillBelowLineColor(Color.parseColor("#bbc68c4d"));
// Creating a XYMultipleSeriesRenderer to customize the whole chart
XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer();
multiRenderer.setXLabels(0);
multiRenderer.setZoomButtonsVisible(true);
for(int i=0;i<x.length;i++){
multiRenderer.addXTextLabel(i+1, mMonth[i]);
}
multiRenderer.setLabelsTextSize(50);
multiRenderer.setYLabels(0);
multiRenderer.setMargins(new int[]{0,0,0,0});
multiRenderer.addSeriesRenderer(happynessRenderer);
multiRenderer.addSeriesRenderer(energyRenderer);
multiRenderer.addSeriesRenderer(strenthRenderer);
multiRenderer.addSeriesRenderer(enduranceRenderer);
multiRenderer.setPanEnabled(false, false);
multiRenderer.setZoomEnabled(false, false);
multiRenderer.setZoomEnabled(false, false);
// Creating an intent to plot line chart using dataset and multipleRenderer
mChart =(GraphicalView) ChartFactory.getLineChartView(getBaseContext(), dataset, multiRenderer);
llChart.addView(mChart);
}
first and last x Axis points values (Mon feb 3 and Mon Feb 9) are cutting. I am struggling to show these values as DESIRED_CHART.png
How to remove this black background behind the Xaxis Values?
To change background color
multiRenderer.setMarginsColor(Color.GREEN);
and give margins to show whole x Axis points values text
multiRenderer.setMargins(new int[]{0,40,0,40});
To hide title
multiRenderer.setChartTitle("");
To hide legends
multiRenderer.setShowLegend(false);
where multiRenderer is XYMultipleSeriesRenderer .

Formatting achartengine line graph

I am using achartengine, to plot a line graph. I am trying to customize it to have Y axis lines which pass through the values, and show the values on top. Does any one have any idea, how can I achieve an effect like this one :
Here is what I currently have :
And here is the code Snippet :
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(series);
XYSeriesRenderer renderer = new XYSeriesRenderer();
renderer.setPointStyle(PointStyle.CIRCLE);
renderer.setFillPoints(true);
renderer.setColor(Color.WHITE);
renderer.setLineWidth(2f);
XYMultipleSeriesRenderer seriesRenderer = new XYMultipleSeriesRenderer();
seriesRenderer.addSeriesRenderer(renderer);
seriesRenderer.setLabelsTextSize(20); // Text size
seriesRenderer.setShowAxes(true); // show both axes
seriesRenderer.setShowLegend(false);
seriesRenderer.setShowGridX(true); // X grid helps identify values
seriesRenderer.setShowLabels(true); // See the values
seriesRenderer.setYLabelsAlign(Align.RIGHT);
seriesRenderer.setZoomButtonsVisible(false); // bye bye zoom
seriesRenderer.setXAxisMin(0);
seriesRenderer.setXAxisMax(10);
seriesRenderer.setTextTypeface(Typeface.createFromAsset(context.getAssets(), "fonts/Lifestyle Rounded M54.ttf"));
seriesRenderer.setPointSize(10f);
seriesRenderer.setPanEnabled(true, false);
View view = ChartFactory.getLineChartView(context, dataset, seriesRenderer);
return view;
Any input will be highly appreciated.
You can add annotation that can be displayed wherever you need on the graph:
series.addAnnotation(text, x, y);

How to increase width of bar chart using achart engine in android?

I am using achartengine for showing a single bar chart in my app for a view. I need to increase the width of the bar. This is my code
CategorySeries series = new CategorySeries("Demo Bar Graph");
series.add(65);
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(series.toXYSeries());
XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
mRenderer.setXAxisMin(2);
mRenderer.setXAxisMax(2);
mRenderer.setYAxisMin(0);
mRenderer.setYAxisMax(50);
try Using Below Code
renderer.setBarSpacing(-0.5);

Android: How to create negative values in plots axis based on achartengine lib?

I want to create XY plot with positive and negative numbers on both axys. By default achartnegine shows negative values of series but the start popint is always zero^ graph start from zero and next nubmer is something like -50, -40 etc. I have tried to avoid this but haven;t succed yet. Could you please suggest the right approach?
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(seriesXY);
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
//renderer.setXAxisMin(-10f);
//renderer.setYAxisMin(-250f);
//renderer.setBarSpacing(SPACING);
//renderer.setRange(new double[] { -250d, 250d});
XYSeriesRenderer sRenderer = new XYSeriesRenderer();
sRenderer.setColor(Color.BLUE);
sRenderer.setFillBelowLine(false);
sRenderer.setChartValuesSpacing(SPACING);
sRenderer.setFillBelowLineColor(Color.WHITE);
sRenderer.setFillPoints(false);
renderer.addSeriesRenderer(sRenderer);
renderer.setApplyBackgroundColor(true);
renderer.setBackgroundColor(Color.WHITE);
renderer.setMarginsColor(Color.WHITE);
renderer.setAxesColor(Color.BLACK);
renderer.setXLabelsColor(Color.BLUE);
renderer.setYLabelsColor(0, Color.BLUE);
renderer.setXLabelsAlign(Align.RIGHT);
renderer.setYLabelsAlign(Align.RIGHT);
GraphicalView chartView = ChartFactory.getLineChartView(
getActivity(),
dataset, renderer);
plot.removeAllViews();
plot.addView(chartView, new LayoutParams(
LayoutParams.MATCH_PARENT, 200));
chartView.repaint();
I use LineChartView
The answer is that you cannot put the axis in the center of the chart with AChartEngine as it is out of the box.

Categories

Resources