在使用JFreeChart生成条形图时,我获得了科学数值格式的数十亿和数百万的值,这具有较低的可读性,
有任何方法,这样我就可以像使用JfreeChart一样获得价值。
对于数百万而言,它必须是动态的,而对于所有价值而言,它必须是十亿。任何帮助将不胜感激。
感谢@Haroldo_OK和@trashgod的提示,最后我得到了相同的解决方案,这给了我预期的结果。
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);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
173 次 |
| 最近记录: |