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.
  • JoeCFDJ Offline
    JoeCFDJ Offline
    JoeCFD
    wrote on last edited by
    #2

    there could be junk data in the input. Add them one after another and you may be able to find out which ones are junk.

    M 1 Reply Last reply
    1
    • JoeCFDJ JoeCFD

      there could be junk data in the input. Add them one after another and you may be able to find out which ones are junk.

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

      @JoeCFD thank you ,i have checked ,all points data are normal ,there is no junk

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

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

        M 1 Reply Last reply
        0
        • 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