AMcoder - javascript, python, java, html, php, sql

Գծագրման ժամանակը միլիվայրկյաններով - JFreeChart (Քայլ գծապատկեր)

Ես փորձում եմ գծել քայլային գծապատկեր հետևյալ հատկություններով. x առանցք. Ժամանակ (ms) [Փաստացի տվյալները պարունակում են սա որպես կրկնակի արժեք] y առանցք. Մեկ այլ արժեք պահվում է որպես ամբողջ թիվ:

Ես լրացնում եմ տվյալների հավաքածուն հետևյալ կերպ.

private XYSeries populateStepChartDataSet(HashMap<Double, Integer> dataGrid){
    XYSeries xySeries = new XYSeries("Step Plot", true, true);

    if(dataGrid != null){
        for (Double timeStamp : dataGrid.keySet()) {
            xySeries.add(timeStamp, dataGrid.get(timeStamp));
        }
    }

    return xySeries;
}

Իսկ այն հատվածը, որտեղ ես ստեղծում եմ սյուժեն, հետևյալն է.

        final XYSeriesCollection dataset = new XYSeriesCollection();
        dataset.addSeries(populateStepChartDataSet(dspDataGrid));

        final JFreeChart chart = ChartFactory.createXYStepChart(
            title,
            xAxisLabel, yAxisLabel,
            dataset,
            PlotOrientation.VERTICAL,
            true,   // legend
            true,   // tooltips
            false   // urls
        );

Ես ակնկալում եմ, որ սյուժեն ցույց կտա ժամանակը ms-ով x առանցքում, բայց այս արժեքը վերածվում է տարօրինակ ժամանակի: Ահա թե ինչպես է սյուժեի տեսքը մուտքագրեք պատկերի նկարագրությունը այստեղ

Կարո՞ղ է ինչ-որ մեկը, խնդրում եմ, օգնի ինձ վերադարձնել x-առանցքի ms ձևաչափով ժամադրոշմը:

13.06.2012

Պատասխանները:


1

Կարծես x առանցքը ձևավորվում է որպես ամսաթվի հասցեագրման եղանակներից մեկը NumberFormatOverride տրամադրելն է

Ավելացրեք այս կոդը ձեր chart-ի ստեղծումից հետո՝

XYPlot plot = (XYPlot)chart.getPlot();
plot.setDomainAxis(0, new NumberAxis()); 
NumberAxis axis = (NumberAxis) plot.getDomainAxis();
axis.setNumberFormatOverride( new NumberFormat(){

    @Override
    public StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition pos) {

    return new StringBuffer(String.format("%f", number));
    }

    @Override
    public StringBuffer format(long number, StringBuffer toAppendTo, FieldPosition pos) {
    return new StringBuffer(String.format("%9.0f", number));
    }

    @Override
    public Number parse(String source, ParsePosition parsePosition) {
    return null;
    }
    } );
    axis.setAutoRange(true);
    axis.setAutoRangeIncludesZero(false);

Այնուհետև դուք պետք է ստանաք այս աղյուսակը.

Գծապատկեր

13.06.2012
  • Շնորհակալություն Դա ստացվեց: Ես սկզբում ստացա java.lang.ClassCastException. org.jfree.chart.axis.DateAxis-ը չի կարող փոխանցվել org.jfree.chart.axis.NumberAxis-ին, բայց հետո ես ավելացրի այս տողը նախքան կոդի ձեր մասը կանչելը. plot.setDomainAxis( 0, նոր NumberAxis()); 13.06.2012

  • 2

    FYI, օգտագործեք entrySet() ամեն անգամ, երբ կրկնում եք քարտեզի միջոցով՝ keySet()-ի միջոցով կրկնելու փոխարեն, այնուհետև յուրաքանչյուր ստեղնի արժեքը ստանալու համար:

    07.08.2012
  • Դուք ճիշտ եք: Ես պետք է օգտագործեի entrySet()-ն իմ կոդի մեջ, քան keySet()-ը: ավելի խելամիտ է! շնորհակալություն :) 07.08.2012
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..