Y轴未在JFreeChart中显示百万和十亿的正确数字

Sav*_*ear 3 java jfreechart

在使用JFreeChart生成条形图时,我获得了科学数值格式的数十亿和数百万的值,这具有较低的可读性,

在此处输入图片说明

有任何方法,这样我就可以像使用JfreeChart一样获得价值。

在此处输入图片说明

对于数百万而言,它必须是动态的,而对于所有价值而言,它必须是十亿。任何帮助将不胜感激。

Sav*_*ear 5

感谢@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)