Reputation: 5258
I have tried various link posted on SO,but not got reliable answer.
Here is my code :
TimeSeries series = new TimeSeries("Burned Calories");
for (int i = 0; i < x_axis.size(); i++) {
String date = x_axis.get(i);
int y = Integer.parseInt(y_axis.get(i));
Date d;
try {
d = df.parse(date);
series.add(d, y);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(series);
XYSeriesRenderer render = new XYSeriesRenderer();
render.setColor(Color.GREEN);
render.setPointStyle(PointStyle.SQUARE);
render.setFillPoints(true);
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
renderer.addSeriesRenderer(render);
renderer.setChartTitle("Line Chart");
renderer.setAxesColor(Color.BLUE);
renderer.setGridColor(Color.WHITE);
renderer.setShowGrid(true);
renderer.setShowAxes(true);
renderer.setShowGridX(true);
renderer.setShowGridY(true);
renderer.setShowLabels(true);
renderer.setPanEnabled(true, true);
renderer.setFitLegend(true);
renderer.setXTitle("Date");
renderer.setAxisTitleTextSize(15);
renderer.setXLabelsAlign(Align.CENTER);
renderer.setYTitle("Values");
chart = ChartFactory.getLineChartView(this, dataset, renderer);
I am getting strange values on x axis.
Any Help would be appreciated.
Upvotes: 3
Views: 3806
Reputation: 5258
These are basic changes i made in my code and it worked for me..
TimeSeries series2 = new TimeSeries("Protein");
for (int i = 0; i < x_axis.size(); i++) {
int y = Integer.parseInt(y1_axis.get(i));
// Adding y as protein value
series2.add(i + 1, y);
}
for (int i = 0; i < x_axis.size(); i++) {
renderer.addXTextLabel(i + 1, x_axis.get(i));
}
renderer.setXLabels(0);
Upvotes: 3
Reputation: 4139
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
After that add below code ... Set below figure as per your requirements...
String MainTitle = "Graph";
String XTitle = "Date";
String YTitle = "Values";
float minValueX = 0.0f;
float maxValueX = 30.00f;
float minValueY = 0f;
float maxValueY = 50f;
setChartSettings(renderer, MainTitle, XTitle, YTitle, minValueX,
maxValueX, minValueY, maxValueY, Color.BLACK, Color.BLACK);
protected void setChartSettings(XYMultipleSeriesRenderer renderer,
String title, String xTitle, String yTitle, double xMin,
double xMax, double yMin, double yMax, int axesColor,
int labelsColor) {
renderer.setChartTitle(title);
renderer.setXTitle(xTitle);
renderer.setYTitle(yTitle);
renderer.setXAxisMin(xMin);
renderer.setXAxisMax(xMax);
renderer.setYAxisMin(yMin);
renderer.setYAxisMax(yMax);
renderer.setAxesColor(axesColor);
renderer.setLabelsColor(labelsColor);
}
On Chartengine show date or month only numeric figure so you are set numeric and set label date... As show date on x axis not sure but i thik not provide by chart engine
Upvotes: 2