While generating Bar Graph using JFreeChart, I am getting billions and Millions value in scientific numeric format, that is having less readability,
There is any way, so that I can get the value like using JfreeChart.
It has to be dynamic for Million, Billions for all value. Any help will be appreciated.
Thanks to @Haroldo_OK and @trashgod for you hint and finally I got the solution for the same and It's giving me the expected result.
final long MILLION = 1000000L;
final long BILLION = 1000000000L;
final long TRILLION = 1000000000000L;
final long THOUSAND = 1000L;
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setNumberFormatOverride(new NumberFormat() {
@Override
public Number parse(String source, ParsePosition parsePosition) {
return null;
}
@Override
public StringBuffer format(long number, StringBuffer toAppendTo, FieldPosition pos) {
String temp = number < THOUSAND ? String.valueOf(number) :
number < MILLION ? (int)(number / THOUSAND) + " K" :
number < BILLION ? (int)(number / MILLION) + " M" :
number < TRILLION ? (int)(number / BILLION) + " B" :
(int)(number / TRILLION) + " T";
return new StringBuffer(temp);
}
@Override
public StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition pos) {
String temp = number < THOUSAND ? String.valueOf(number) :
number < MILLION ? (int)(number / THOUSAND) + " K" :
number < BILLION ? (int)(number / MILLION) + " M" :
number < TRILLION ? (int)(number / BILLION) + " B" :
(int)(number / TRILLION) + " T";
return new StringBuffer(temp);
}
});