ExtJs Charts met de tijd as, updateprobleem

stemmen
5

Ik gebruik Ext4 js om grafieken te maken. Mijn kaarten zijn lijn grafieken die de evolutie van de gebeurtenissen tijdens de tijd, dus mijn billen assen is een tijd assen:

    {
    type: 'Time',
    position: 'bottom',
    grid: grid,
    fields: 'name',
    title: false,
    dateFormat: 'd/m/y',
    groupBy: 'year,month,day',

    aggregateOp: 'sum',
    label: {
        orientation: 'horizontal',
        rotate: {
            degrees: label_rotation
        }
    }

Ik heb links naar de schaal te veranderen. Door te klikken op een van die koppeling moet dateformat en GroupBy opties te wijzigen. Hier is de code:

scaleGroups = {
    'DAY': {
    dateFormat: 'd/m/y',
        groupBy: 'year,month,day' 
    },
    'MONTH' :{
            dateFormat: 'M Y',
            groupBy: 'year,month'
    },
    'YEAR' :{
            dateFormat: 'Y',
            groupBy: 'year'
    }
};


function changeChartScale(chart_id, scale) {
    var chart = Ext.getCmp(chart_id);
    var axis = chart.axes.get(1);
    selectedGroup = scaleGroups[scale];
    axis.dateFormat = selectedGroup.dateFormat;
    axis.groupBy = selectedGroup.groupBy;

    chart.redraw();
}

Het probleem is dat het veranderen van een schaal naar de andere, bijvoorbeeld van dagen tot maanden, vorige labels blijven. Dus de lijn is juist, maar ik zie zowel overdag als 'labels en maand labels.

Weet iemand waarom?

Bij voorbaat dank, Sabrina

UPDATE 07/06/2011 : Dezelfde code op een goed voorbeeld HTML-pagina, het importeren van alleen deze javascript bibliotheek, werkt.

Misschien is het een probleem van compatibiliteit met andere javascript bibliotheken die ik gebruik (jQuery, googlempas ...). Heeft iemand hetzelfde probleem ervaren?

De vraag is gesteld op 01/06/2011 om 14:02
user
In andere talen...                            


3 antwoorden

stemmen
1

Ik denk dat ik vond een moeilijke situatie! Stel gewoon minimale en maximale woning in assen tot een redelijk waarden (dat wil zeggen: per dagen set 31, per maand set 12). Het werkt voor mij!

antwoordde op 14/09/2011 om 14:39
bron van user

stemmen
2

Dit is een Sencha bug!

Dit is nog steeds onbeantwoord op hun forum: http://www.sencha.com/forum/showthread.php?145433-ExtJS-4-chart-store-update-issue

antwoordde op 14/04/2012 om 08:03
bron van user

stemmen
5

Ik vond een oplossing omdat de methode chart.redraw () niet automatisch herschrijven de asschaal / waarden.

Stel een nieuwe maximum voor de assen vervolgens met de methode axis.drawAxis () voorafgaand aan het opnieuw tekenen van de grafiek ...

Mijn kaart opnieuw getekend wanneer de gebruiker een kolom op een gebonden raster sorteert.

    chart.axes.items[0].fields = [column.dataIndex];
    chart.series.items[0].yField = [column.dataIndex];


    var s = Ext.data.StoreManager.lookup('myStore');
    var max = s.max(column.dataIndex);


    chart.axes.items[0].maximum = max;
    chart.axes.items[0].drawAxis();


    chart.redraw();
antwoordde op 30/08/2013 om 13:49
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more