D3js first tick label is missing












0















I don't understand why the first label (2000) is missing. I compared it to many examples without finding why.



axis



    let xAxisScale = d3
.scaleTime()
.domain([min, max]) // 2000, 2013
.range([0, width]);

xAxis = d3
.axisBottom()
.tickFormat(d3.timeFormat('%Y'))
.tickPadding(5)
.ticks(d3.timeYear)
.scale(xAxisScale);

gx = innerSpace
.append('g')
.attr('class', 'x axis')
.attr('transform', 'translate(0,' + height + ')')
.call(xAxis);


Do you see any errors ?



Thanks !










share|improve this question



























    0















    I don't understand why the first label (2000) is missing. I compared it to many examples without finding why.



    axis



        let xAxisScale = d3
    .scaleTime()
    .domain([min, max]) // 2000, 2013
    .range([0, width]);

    xAxis = d3
    .axisBottom()
    .tickFormat(d3.timeFormat('%Y'))
    .tickPadding(5)
    .ticks(d3.timeYear)
    .scale(xAxisScale);

    gx = innerSpace
    .append('g')
    .attr('class', 'x axis')
    .attr('transform', 'translate(0,' + height + ')')
    .call(xAxis);


    Do you see any errors ?



    Thanks !










    share|improve this question

























      0












      0








      0








      I don't understand why the first label (2000) is missing. I compared it to many examples without finding why.



      axis



          let xAxisScale = d3
      .scaleTime()
      .domain([min, max]) // 2000, 2013
      .range([0, width]);

      xAxis = d3
      .axisBottom()
      .tickFormat(d3.timeFormat('%Y'))
      .tickPadding(5)
      .ticks(d3.timeYear)
      .scale(xAxisScale);

      gx = innerSpace
      .append('g')
      .attr('class', 'x axis')
      .attr('transform', 'translate(0,' + height + ')')
      .call(xAxis);


      Do you see any errors ?



      Thanks !










      share|improve this question














      I don't understand why the first label (2000) is missing. I compared it to many examples without finding why.



      axis



          let xAxisScale = d3
      .scaleTime()
      .domain([min, max]) // 2000, 2013
      .range([0, width]);

      xAxis = d3
      .axisBottom()
      .tickFormat(d3.timeFormat('%Y'))
      .tickPadding(5)
      .ticks(d3.timeYear)
      .scale(xAxisScale);

      gx = innerSpace
      .append('g')
      .attr('class', 'x axis')
      .attr('transform', 'translate(0,' + height + ')')
      .call(xAxis);


      Do you see any errors ?



      Thanks !







      d3.js axis axis-labels






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 22 '18 at 13:38









      pipoupipou

      436




      436
























          2 Answers
          2






          active

          oldest

          votes


















          1














          This problem may be due to small variations in min date. It depends on the way you construct min date.



          For example, new Date('2000-01-01') does not include year 2000 if your time zone is >0. You can write new Date('2000-01-01T00:00:00Z') to use UTC.



          Also, if you use new Date(YYYY, MM, DD), you should take into account, that month starts from zero, while day starts from one.



          Read about correct way of dealing with that problem here: http://bl.ocks.org/jebeck/9671241






          share|improve this answer
























          • Okay, thanks for this nice answer, I check it :)

            – pipou
            Nov 26 '18 at 9:59



















          0














          Next to your nice answer I tried different ways to get a datetime without utc / gmt problems but didn't find a nice solution of dealing with it for all web explorer without using library.



          The best solution I find is to use the library momentjs because momentjs will nicely handle the timezone :



          const minMoment = moment(`01/01/${minDate}`, 'DD/MM/YYYY', true);
          const maxMoment = moment(`01/01/${maxDate}`, 'DD/MM/YYYY', true);

          this.xAxisScale = d3
          .scaleTime()
          .domain([minMoment.toDate(), maxMoment.toDate()])
          .range([0, width]);





          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53432244%2fd3js-first-tick-label-is-missing%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1














            This problem may be due to small variations in min date. It depends on the way you construct min date.



            For example, new Date('2000-01-01') does not include year 2000 if your time zone is >0. You can write new Date('2000-01-01T00:00:00Z') to use UTC.



            Also, if you use new Date(YYYY, MM, DD), you should take into account, that month starts from zero, while day starts from one.



            Read about correct way of dealing with that problem here: http://bl.ocks.org/jebeck/9671241






            share|improve this answer
























            • Okay, thanks for this nice answer, I check it :)

              – pipou
              Nov 26 '18 at 9:59
















            1














            This problem may be due to small variations in min date. It depends on the way you construct min date.



            For example, new Date('2000-01-01') does not include year 2000 if your time zone is >0. You can write new Date('2000-01-01T00:00:00Z') to use UTC.



            Also, if you use new Date(YYYY, MM, DD), you should take into account, that month starts from zero, while day starts from one.



            Read about correct way of dealing with that problem here: http://bl.ocks.org/jebeck/9671241






            share|improve this answer
























            • Okay, thanks for this nice answer, I check it :)

              – pipou
              Nov 26 '18 at 9:59














            1












            1








            1







            This problem may be due to small variations in min date. It depends on the way you construct min date.



            For example, new Date('2000-01-01') does not include year 2000 if your time zone is >0. You can write new Date('2000-01-01T00:00:00Z') to use UTC.



            Also, if you use new Date(YYYY, MM, DD), you should take into account, that month starts from zero, while day starts from one.



            Read about correct way of dealing with that problem here: http://bl.ocks.org/jebeck/9671241






            share|improve this answer













            This problem may be due to small variations in min date. It depends on the way you construct min date.



            For example, new Date('2000-01-01') does not include year 2000 if your time zone is >0. You can write new Date('2000-01-01T00:00:00Z') to use UTC.



            Also, if you use new Date(YYYY, MM, DD), you should take into account, that month starts from zero, while day starts from one.



            Read about correct way of dealing with that problem here: http://bl.ocks.org/jebeck/9671241







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Nov 22 '18 at 15:52









            Yaroslav SergienkoYaroslav Sergienko

            40016




            40016













            • Okay, thanks for this nice answer, I check it :)

              – pipou
              Nov 26 '18 at 9:59



















            • Okay, thanks for this nice answer, I check it :)

              – pipou
              Nov 26 '18 at 9:59

















            Okay, thanks for this nice answer, I check it :)

            – pipou
            Nov 26 '18 at 9:59





            Okay, thanks for this nice answer, I check it :)

            – pipou
            Nov 26 '18 at 9:59













            0














            Next to your nice answer I tried different ways to get a datetime without utc / gmt problems but didn't find a nice solution of dealing with it for all web explorer without using library.



            The best solution I find is to use the library momentjs because momentjs will nicely handle the timezone :



            const minMoment = moment(`01/01/${minDate}`, 'DD/MM/YYYY', true);
            const maxMoment = moment(`01/01/${maxDate}`, 'DD/MM/YYYY', true);

            this.xAxisScale = d3
            .scaleTime()
            .domain([minMoment.toDate(), maxMoment.toDate()])
            .range([0, width]);





            share|improve this answer




























              0














              Next to your nice answer I tried different ways to get a datetime without utc / gmt problems but didn't find a nice solution of dealing with it for all web explorer without using library.



              The best solution I find is to use the library momentjs because momentjs will nicely handle the timezone :



              const minMoment = moment(`01/01/${minDate}`, 'DD/MM/YYYY', true);
              const maxMoment = moment(`01/01/${maxDate}`, 'DD/MM/YYYY', true);

              this.xAxisScale = d3
              .scaleTime()
              .domain([minMoment.toDate(), maxMoment.toDate()])
              .range([0, width]);





              share|improve this answer


























                0












                0








                0







                Next to your nice answer I tried different ways to get a datetime without utc / gmt problems but didn't find a nice solution of dealing with it for all web explorer without using library.



                The best solution I find is to use the library momentjs because momentjs will nicely handle the timezone :



                const minMoment = moment(`01/01/${minDate}`, 'DD/MM/YYYY', true);
                const maxMoment = moment(`01/01/${maxDate}`, 'DD/MM/YYYY', true);

                this.xAxisScale = d3
                .scaleTime()
                .domain([minMoment.toDate(), maxMoment.toDate()])
                .range([0, width]);





                share|improve this answer













                Next to your nice answer I tried different ways to get a datetime without utc / gmt problems but didn't find a nice solution of dealing with it for all web explorer without using library.



                The best solution I find is to use the library momentjs because momentjs will nicely handle the timezone :



                const minMoment = moment(`01/01/${minDate}`, 'DD/MM/YYYY', true);
                const maxMoment = moment(`01/01/${maxDate}`, 'DD/MM/YYYY', true);

                this.xAxisScale = d3
                .scaleTime()
                .domain([minMoment.toDate(), maxMoment.toDate()])
                .range([0, width]);






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Dec 12 '18 at 10:11









                pipoupipou

                436




                436






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53432244%2fd3js-first-tick-label-is-missing%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    "Incorrect syntax near the keyword 'ON'. (on update cascade, on delete cascade,)

                    Alcedinidae

                    RAC Tourist Trophy