Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. why extra lines appear here by QCharts
Forum Updated to NodeBB v4.3 + New Features

why extra lines appear here by QCharts

Scheduled Pinned Locked Moved Solved General and Desktop
14 Posts 4 Posters 1.1k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M mchinand

    What if you exclude the number->QString formatting->number step when you are appending your points. Do you still get these artifacts?

    M Offline
    M Offline
    mr.five
    wrote on last edited by
    #5

    @mchinand thank you ,i know that is not a good method to do so , but i need the required precision ,so have any other better method to take place? in the other hand, i have exclude that ,but there is still have the extra line on the graph , alas~~~

    M JonBJ 2 Replies Last reply
    0
    • M mr.five

      @mchinand thank you ,i know that is not a good method to do so , but i need the required precision ,so have any other better method to take place? in the other hand, i have exclude that ,but there is still have the extra line on the graph , alas~~~

      M Offline
      M Offline
      mchinand
      wrote on last edited by
      #6

      I think the preferred way to do that formatting (format to two decimal places) is:

      QString::number(hstTodayClose[index-1]/100.00, 'f', 2).toDouble();

      There's nothing weird with your indexing of time[] with i and hstTodayClose[] with index? This depends on how those arrays are populated, so could be correct.

      M 1 Reply Last reply
      0
      • M Offline
        M Offline
        mchinand
        wrote on last edited by
        #7

        Also, where is points defined and initialized? Perhaps try clearing that at the start of addData()

        1 Reply Last reply
        1
        • M mchinand

          I think the preferred way to do that formatting (format to two decimal places) is:

          QString::number(hstTodayClose[index-1]/100.00, 'f', 2).toDouble();

          There's nothing weird with your indexing of time[] with i and hstTodayClose[] with index? This depends on how those arrays are populated, so could be correct.

          M Offline
          M Offline
          mr.five
          wrote on last edited by
          #8

          @mchinand ```
          QString::number(hstTodayClose[index-1]/100.00, 'f', 2).toDouble();

          this method i have used, but  it  loss precision when i debug out the number.    the points was initialized like this:```
          QList<QPointF> points={};
          

          and i tried to add points.clear() ,but it seems like have no help on the grap ,the extra lines are still there.

          1 Reply Last reply
          0
          • M mr.five

            @mchinand thank you ,i know that is not a good method to do so , but i need the required precision ,so have any other better method to take place? in the other hand, i have exclude that ,but there is still have the extra line on the graph , alas~~~

            JonBJ Offline
            JonBJ Offline
            JonB
            wrote on last edited by JonB
            #9

            @mr-five

            • Check @mchinand's comment: if points is not empty (left over from before?) you would "jump back" to x == 0, could make it look screwy.
            • Verify how it looks using just all points as QPointF(index, index) instead. Should be diagonal line. Any artefacts?
            • Verify the length of hstTodayClose, is [index-1] always within bounds?
            • Binary chop the number of points you plot, do the artefacts still appear? Keep chopping in half.
            • To pass a floating point number of 2 decimal places you shouldn't need to convert to a string and then back to a number. Something like int(num * 100 + 0.5) / 100.0 should work.
            M 1 Reply Last reply
            1
            • JonBJ JonB

              @mr-five

              • Check @mchinand's comment: if points is not empty (left over from before?) you would "jump back" to x == 0, could make it look screwy.
              • Verify how it looks using just all points as QPointF(index, index) instead. Should be diagonal line. Any artefacts?
              • Verify the length of hstTodayClose, is [index-1] always within bounds?
              • Binary chop the number of points you plot, do the artefacts still appear? Keep chopping in half.
              • To pass a floating point number of 2 decimal places you shouldn't need to convert to a string and then back to a number. Something like int(num * 100 + 0.5) / 100.0 should work.
              M Offline
              M Offline
              mr.five
              wrote on last edited by
              #10

              @JonB thank you.

              1. the points is empty when i used points.clear() before add data, but it is not works
                2.it is not diagonal line, like this ,and i do not know why?
                dcf61569-20b4-4d73-8a82-42b0e5a8761a-image.png ![alt text](image url)
                1c7234e4-74b3-4ed7-90cc-efef1d206239-image.png
              JonBJ 1 Reply Last reply
              0
              • M mr.five

                @JonB thank you.

                1. the points is empty when i used points.clear() before add data, but it is not works
                  2.it is not diagonal line, like this ,and i do not know why?
                  dcf61569-20b4-4d73-8a82-42b0e5a8761a-image.png ![alt text](image url)
                  1c7234e4-74b3-4ed7-90cc-efef1d206239-image.png
                JonBJ Offline
                JonBJ Offline
                JonB
                wrote on last edited by JonB
                #11

                @mr-five
                Looks like two separate diagonal lines. Does your x value change from positive to negative?? What is the range of your index variable? Make it int index instead of qreal, any difference? Only print the first 50% of all the points, do you then get just the left-hand line?

                M 1 Reply Last reply
                0
                • JonBJ JonB

                  @mr-five
                  Looks like two separate diagonal lines. Does your x value change from positive to negative?? What is the range of your index variable? Make it int index instead of qreal, any difference? Only print the first 50% of all the points, do you then get just the left-hand line?

                  M Offline
                  M Offline
                  mr.five
                  wrote on last edited by mr.five
                  #12

                  @JonB
                  e387ec4d-4ae8-4c79-9890-5150510b8014-image.png
                  f63cadb8-77b8-4e76-8441-1bb04f3233e2-image.png

                  i found one probable cause is that i forgot to initialize the range of the Y axis, and after i do so:

                  ui->fenshiLineChart->chart()->axes(Qt::Vertical).at(0)->setRange(todayLow[itemNum-1],todayHigh[itemNum-1]);
                  

                  the graph only leave one extra line like this,and i do not know the reason again,thank you

                  JonBJ 1 Reply Last reply
                  0
                  • M mr.five

                    @JonB
                    e387ec4d-4ae8-4c79-9890-5150510b8014-image.png
                    f63cadb8-77b8-4e76-8441-1bb04f3233e2-image.png

                    i found one probable cause is that i forgot to initialize the range of the Y axis, and after i do so:

                    ui->fenshiLineChart->chart()->axes(Qt::Vertical).at(0)->setRange(todayLow[itemNum-1],todayHigh[itemNum-1]);
                    

                    the graph only leave one extra line like this,and i do not know the reason again,thank you

                    JonBJ Offline
                    JonBJ Offline
                    JonB
                    wrote on last edited by
                    #13

                    @mr-five
                    It looks like that would be produced if you somehow have an extra (0, 0) at the end of the series?

                    1 Reply Last reply
                    0
                    • M Offline
                      M Offline
                      mr.five
                      wrote on last edited by
                      #14

                      @JonB @JoeCFD @mchinand thank you all! i have found the reason,the axis count not suit my series count,if some missed ,there will have extra lines

                      1 Reply Last reply
                      0

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved