datum wil ik anders onder aan de grafiek.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Frits van Leeuwen

Frits van Leeuwen

16/11/2018 00:54:53
Quote Anchor link
Hallo allemaal, Ik wil onder de grafiek mijn datum anders. Maar wat ik ook probeer, ik kom er niet uit.
In de grafiek zie ik de datum als jaar, maand dag heb, maar ik wil hem dus precies omgekeerd.

Misschien moet ik er een aparte topic van maken, maar ik wil ook met de muis over de grafiek en dan de datum met het bedrag van de staaf in beeld krijgen.

Dit is mijn code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
                                        $(document).ready(function(){
                                            
                                            var s1 = <?php echo json_encode($debet_arr, JSON_NUMERIC_CHECK); ?>;
                                            var s2 = <?php echo json_encode($credit_arr, JSON_NUMERIC_CHECK); ?>;
                                            var ticks = <?php echo json_encode($datum_arr, JSON_NUMERIC_CHECK); ?>;
    
                                            plot2 = $.jqplot('chart2', [s1, s2], {
                                                // Turns on animatino for all series in this plot.
                                                animate: false,
                                                cursor: {
                                                    show: true,
                                                    zoom: true,
                                                    looseZoom: true,
                                                    showTooltip: false,
                                                    tooltipLocation:'sw'
                                                },
                                                seriesDefaults: {
                                                    renderer:$.jqplot.BarRenderer,
                                                    rendererOptions: {
                                                        fillToZero: true,
                                                        useNegativeColors: true    // false = negative same color as positive                                                 
                                                    },
                                                    pointLabels: { show: true },
                                                    // Set the varyBarColor option to true to use different colors for each bar.
                                                    // The default series colors are used.
                                                    varyBarColor: false
                                                },
                                                axes: {
                                                    xaxis: {
                                                        renderer: $.jqplot.CategoryAxisRenderer,
                                                        ticks: ticks,
                                                        tickRenderer: $.jqplot.CanvasAxisTickRenderer,
                                                        tickOptions: {
                                                            formatString: '%d %b %Y',
                                                            showMark: true,
                                                            angle: -90,
                                                            textColor: '#755E28'
                                                        }
                                                    },
                                                    yaxis: {
                                                        autoscale: true,
                                                        labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
                                                        label: 'inkomsten en uitgaven',
                                                        tickRenderer: $.jqplot.CanvasAxisTickRenderer,
                                                        tickOptions: {
                                                            formatString: " %.2f",
                                                            showMark: true,
                                                            textColor: '#755E28'
                                                        }
                                                    }
                                                },
                                                series: [
                                                    {
                                                        pointLabels: { show: true },
                                                        renderer: $.jqplot.BarRenderer,
                                                        fill: false,
                                                        label: 'inkomsten',
                                                        color: '#1AA017',
                                                        negativeColor: '#1AA017'
                                                    },
                                                    {
                                                        renderer: $.jqplot.BarRenderer,
                                                        label: 'uitgaven',
                                                        color: '#FD3400',
                                                        negativeColor: '#FD3400'
                                                    },
                                                    {
                                                        lineWidth:4,
                                                        markerOptions:{ style:'square' }
                                                    }
                                                ],
                                                // legenda
                                                legend: {
                                                    show: true,
                                                    placement: 'outside'
                                                },
                                                // layout
                                                grid: {
                                                    background: 'rgba(57,57,57,0.0)',
                                                    drawBorder: false,
                                                    shadow: false,
                                                    gridLineColor: '#755E28',
                                                    gridLineWidth: 1
                                                },
                                                // mouseover
                                                highlighter: {
                                                    showMarker: true,
                                                    tooltipAxes: 'xy',
                                                    yvalues: 1,
                                                    formatString:'<table class="jqplot-highlighter"> \
                                                        <tr><td>%s</td>><td>%s</td></tr> \
                                                    </table>'
                                                }
                                            });
    
                                            $('#chart2').bind('jqplotDataHighlight',
                                                function (ev, seriesIndex, pointIndex, data) {
                                                    $('#info2').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
                                                }
                                            );
                                                
                                            $('#chart2').bind('jqplotDataUnhighlight',
                                                function (ev) {
                                                    $('#info2').html('Nothing');
                                                }
                                            );
                                        });
Gewijzigd op 16/11/2018 00:58:35 door Frits van Leeuwen
 
PHP hulp

PHP hulp

20/04/2024 02:44:55
 
Thomas van den Heuvel

Thomas van den Heuvel

16/11/2018 15:21:54
Quote Anchor link
Blijkbaar is er een plugin waarmee je de datums kunt formatteren. Ik ga er hierbij vanuit dat je gebruik maakt van jqPlot, misschien in het vervolg handig om dit volledigheidshalve erbij te vermelden :).

Ook voor de mouseover is er een plugin, maar misschien werkt dit al zoals je wilt op het moment dat je de "ticks" aanpast.

(dit alles kostte mij 5 mins Googlen trouwens)
Gewijzigd op 16/11/2018 15:22:14 door Thomas van den Heuvel
 
Frits van Leeuwen

Frits van Leeuwen

16/11/2018 15:50:24
Quote Anchor link
Thomas van den Heuvel, bedankt voor je reactie. Je hebt helemaal gelijk, het gaat over jqplot. Suf van mij dat ik dat vergeet.

Ik heb de datum op een goede manier gezien, maar toen ik verder ging was de datum op een bepaald moment anders. Maar toen ik dat constateerde, was ik al weer zo ver met ontwikkelen, dat ik niet meer wist waar het fout ging.

Als ik google, vind ik dat ik met

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
axes: {
      xaxis: {
             renderer: $.jqplot.CategoryAxisRenderer,
             ticks: ticks,
             tickRenderer: $.jqplot.CanvasAxisTickRenderer,
             tickOptions: {formatString: '%d %b %Y'}


de datum naar wens moet krijgen. Echter, dat gebeurt niet en ik vraag me af waarom?

Het zelfde geldt voor mijn vraag over de mouseover. Hiervoor dacht ik dat dit stukje code goed was. Maar helaas.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
// mouseover
highlighter: {
    showMarker: true,
    tooltipAxes: 'xy',
    yvalues: 1,
    formatString:'<table class="jqplot-highlighter"> \
                  <tr><td>%s</td>><td>%s</td></tr> \
                  </table>'
}
Gewijzigd op 16/11/2018 15:53:56 door Frits van Leeuwen
 
Thomas van den Heuvel

Thomas van den Heuvel

16/11/2018 16:04:16
Quote Anchor link
Een "plugin" is vaak een extra stukje code wat je in kunt prikken in een bestaand stuk functionaliteit. Mijn vermoeden is dan ook dat de desbetreffende JavaScript bestanden ontbreken en dat je die op een bepaalde voorgeschreven wijze toe moet voegen aan de bestaande functionaliteit van jqPlot (meestal komt dit neer op het toevoegen van een extra JavaScript-bestand na het laden van de "hoofd library"). Anders "doet deze" waarschijnlijk inderdaad "niets" omdat dit extra instructies zijn die alleen maar betekenis hebben voor de plugin.

Dit staat ook min of meer in de documentatie:
Quote:
To use this renderer, include the plugin in your source

<script type="text/javascript" language="javascript" src="plugins/jqplot.dateAxisRenderer.js"></script>

Heb je dit ook gedaan, en heb je er ook voor gezorgd dat je browser cache geleegd is, want wijzigingen in JavaScript en het effect daarvan op pagina's willen soms niet direct bijgewerkt worden zodat deze de nieuwe situatie weerspiegelt, waardoor het inderdaad lijkt alsof er niets is veranderd :).
Gewijzigd op 16/11/2018 16:09:05 door Thomas van den Heuvel
 
Frits van Leeuwen

Frits van Leeuwen

17/11/2018 00:05:34
Quote Anchor link
Wederom bedankt voor de informatie.
Wat je noemt heb ik inderdaad ook wel zo geregeld. maar toch werkt het niet.
Het antwoord van de regel
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo json_encode($datum_arr, JSON_NUMERIC_CHECK); ?>

is
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
["2018-10-18","2018-10-19","2018-10-20","2018-10-21","2018-10-22","2018-10-23","2018-10-24","2018-10-25","2018-10-26"]


Dat gaat dus ticks in.
Gewijzigd op 17/11/2018 00:11:58 door Frits van Leeuwen
 
Thomas van den Heuvel

Thomas van den Heuvel

17/11/2018 10:50:06
Quote Anchor link
In de documentatie staat: {axes:{xaxis:{renderer:$.jqplot.DateAxisRenderer}}}, dit waarschijnlijk om de data door die renderer te halen. Is dit ook wat er in jouw code gebeurt, want je had het eerder over CategoryAxisRenderer?
Gewijzigd op 17/11/2018 10:50:17 door Thomas van den Heuvel
 
Frits van Leeuwen

Frits van Leeuwen

17/11/2018 14:46:53
Quote Anchor link
Bedankt weer voor de reactie. Ik had daar overheen gekeken. Maar nu ik dat aanpas is de datum goed, maar ben ik mijn grafiek kwijt. Hoe kan dat dan?
 
Thomas van den Heuvel

Thomas van den Heuvel

18/11/2018 00:10:24
Quote Anchor link
Misschien moet je je data door meerdere plugins halen, of alle cache een keer verversen. Hoe dat eerste moet zul je even na moeten kijken, ik kan mij zo voorstellen dat dat geen uniek probleem is (meerdere manipulaties uitvoeren om je data er uit te laten zien zoals jij wilt).
 
Frits van Leeuwen

Frits van Leeuwen

18/11/2018 13:54:32
Quote Anchor link
Ik heb een andere oplossing bedacht. Ik heb in het voortraject de aanlevering voor ticks aangepast. Nu doet hij wat ik wil. Maar om dat te doen moest ik ook een aantal vergelijkingen aanpassen.
Bedankt voor de assistentie.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.