Reputation: 2376
this is my first question in SO:
I'm using Androidplot 0.6.0 in an Android app. I'm displaying a bar chart of six months (a bar per month), at this point everything is well, the trouble is the bar's width (very thin), I would like make the bars wider for better appearance. I have tried the following:
XYSeries series1 = new SimpleXYSeries(Arrays.asList(domain), Arrays.asList(range), "Title");
BarFormatter series1Format = new BarFormatter(Color.argb(255,0,0,100), Color.LTGRAY);
plot.addSeries(series1, series1Format);
//plot.addSeries(series1, BarRenderer.class, series1Format); //Not in version 0.6.0
//BarRenderer barRenderer = (BarRenderer) plot.getRenderer(BarRenderer.class); //This return null
BarRenderer barRenderer = new BarRenderer(plot);
if(barRenderer != null) {
barRenderer.setBarWidthStyle(BarRenderer.BarWidthStyle.FIXED_WIDTH);
barRenderer.setBarWidth(100); //This don't take effect
}
The result always is the same for whatever value in setBarWidth().
Thanks in advance.
Upvotes: 0
Views: 1451
Reputation: 305
to close the gap I use this code:
BarRenderer renderer = barPlot.getRenderer(BarRenderer.class);
renderer.setBarGroupWidth(BarRenderer.BarGroupWidthMode.FIXED_GAP,1);
Upvotes: 0
Reputation: 981
In addition to keshav's answer, if you just want to close the gap between the bars, you could use:
// get the renderer
MyBarRenderer renderer = ((MyBarRenderer) plot.getRenderer(MyBarRenderer.class));
// can only set the bar gap if bar width style is VARIABLE_WIDTH
renderer.setBarWidthStyle(BarRenderer.BarWidthStyle.VARIABLE_WIDTH);
// mind the gap
renderer.setBarGap(0f);
Upvotes: 0
Reputation: 3255
Try this
BarRenderer renderer = (BarRenderer) plot.getRenderer(BarRenderer.class);
renderer.setBarWidth(20);
Update
Try this, make ur formatter and renderer.
class MyBarFormatter extends BarFormatter {
public MyBarFormatter(int fillColor, int borderColor) {
super(fillColor, borderColor);
}
@Override
public Class<? extends SeriesRenderer> getRendererClass() {
return MyBarRenderer.class;
}
@Override
public SeriesRenderer getRendererInstance(XYPlot plot) {
return new MyBarRenderer(plot);
}
}
class MyBarRenderer extends BarRenderer<MyBarFormatter> {
public MyBarRenderer(XYPlot plot) {
super(plot);
}
protected MyBarFormatter getFormatter(int index, XYSeries series) {
return getFormatter(series);
}
}
Now
MyBarRenderer renderer = ((MyBarRenderer) plot.getRenderer(MyBarRenderer.class));
renderer.setBarWidthStyle(BarRenderer.BarWidthStyle.FIXED_WIDTH);
renderer.setBarWidth(20);
Upvotes: 2