Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt
  • Unsolved
Collapse
qtws26_logo

The Qt Event of the Year: Qt World Summit 2026

Save Your Spot >
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. QCustomPlot clear Data
Qt 6.12 LTS is out! See what's new in the release blog

QCustomPlot clear Data

Scheduled Pinned Locked Moved Solved General and Desktop
18 Posts 12 Posters 21.5k Views 4 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.
  • H Offline
    H Offline
    HafsaElif
    wrote on last edited by
    #1

    hi;

    I have qcustomplot grapich. It have lots of line ploting before. I want to clear this ploting data.

    There is 2 code which is find. but these codes delete graph (0-1-2-3);

    cleargraph();
    clearitem();

    I want to clear graph data not graph completely. How can I figure out ?

    Thank you..

    1 Reply Last reply
    0
    • RatzzR Offline
      RatzzR Offline
      Ratzz
      wrote on last edited by
      #2

      @HafsaElif

      Is it the same Question ?

      --Alles ist gut.

      1 Reply Last reply
      4
      • H Offline
        H Offline
        HafsaElif
        wrote on last edited by
        #3

        yes ı wrote.

        1 Reply Last reply
        0
        • RatzzR Offline
          RatzzR Offline
          Ratzz
          wrote on last edited by
          #4

          Is it solved?

          --Alles ist gut.

          1 Reply Last reply
          0
          • H Offline
            H Offline
            HafsaElif
            wrote on last edited by
            #5

            no. all about deleting not cleaning

            kshegunovK mrjjM 2 Replies Last reply
            0
            • H HafsaElif

              no. all about deleting not cleaning

              kshegunovK Offline
              kshegunovK Offline
              kshegunov
              Moderators
              wrote on last edited by
              #6

              I think Ian explained rather clearly what you can or can not do. I don't see how we could add to that.

              Read and abide by the Qt Code of Conduct

              H 1 Reply Last reply
              3
              • H HafsaElif

                no. all about deleting not cleaning

                mrjjM Offline
                mrjjM Offline
                mrjj
                Lifetime Qt Champion
                wrote on last edited by
                #7

                @HafsaElif
                There is
                graph->data()->clear();
                Since the 2.0 beta version.

                Alternatively, you can simply give it an empty data list.
                Then its "Clear".

                1 Reply Last reply
                4
                • H Offline
                  H Offline
                  HafsaElif
                  wrote on last edited by
                  #8

                  I wrote this code and problem solved. Thank you mrjj !!!

                  ui->qcustom->graph(0)->data()->clear();
                  ui->qcustom->graph(1)->data()->clear();
                  ui->qcustom->graph(2)->data()->clear();
                  ui->qcustom->replot();
                  

                  0_1486038990528_Screenshot from 2017-02-01 12:00:06.png 0_1486038992133_Screenshot from 2017-02-02 15:35:37.png

                  1 Reply Last reply
                  1
                  • kshegunovK kshegunov

                    I think Ian explained rather clearly what you can or can not do. I don't see how we could add to that.

                    H Offline
                    H Offline
                    HafsaElif
                    wrote on last edited by
                    #9

                    @kshegunov I dont want to set empty data . I was searching for fallowing code which is shared by mrjj.

                    1 Reply Last reply
                    0
                    • I Offline
                      I Offline
                      indu
                      wrote on last edited by
                      #10

                      Hi,

                      I'm facing some issue with ui->qcustom->graph(0)->data()->clear();. It is not working for me.
                      Data container is not getting cleared, even if i call clear() and then replot().
                      Pls help.
                      Thank you.

                      1 Reply Last reply
                      0
                      • O Offline
                        O Offline
                        oaeide
                        wrote on last edited by
                        #11

                        I have the same problem as indu2. Calling clear() and replot(), nothing happens

                        1 Reply Last reply
                        0
                        • M Offline
                          M Offline
                          Marcel92
                          wrote on last edited by mrjj
                          #12

                          Try ui->yourPlot->clearPlottables();

                          1 Reply Last reply
                          2
                          • D Offline
                            D Offline
                            david_808
                            wrote on last edited by
                            #13

                            clearPlottables() does not work because it deletes the object entirely.

                            mrjjM 1 Reply Last reply
                            0
                            • D david_808

                              clearPlottables() does not work because it deletes the object entirely.

                              mrjjM Offline
                              mrjjM Offline
                              mrjj
                              Lifetime Qt Champion
                              wrote on last edited by
                              #14

                              @david_808

                              Hi
                              Maybe ask the author of customplot about how to do it correctly then?

                              1 Reply Last reply
                              1
                              • S Offline
                                S Offline
                                Scarab
                                wrote on last edited by
                                #15

                                Try:

                                for( int g=0; g<pq_plot->graphCount(); g++ )
                                {
                                    pq_plot->graph(g)->data().data().clear();
                                }
                                pq_plot->replot();
                                

                                don't know why to use ->data().data() but it works for me.

                                1 Reply Last reply
                                1
                                • Joel BodenmannJ Offline
                                  Joel BodenmannJ Offline
                                  Joel Bodenmann
                                  wrote on last edited by
                                  #16

                                  @Scarab said in QCustomPlot clear Data:

                                  don't know why to use ->data().data() but it works for me.

                                  The type returned by QCPGraph::data() is a shared pointer to the data container. Both the shared pointer as well as the object the shared pointer is pointing to have a clear() function:

                                  • If you do pq_plot->graph(g)->data().clear() you are calling QSharedPointer::clear().
                                  • If you do pq_plot->graph(g)->data()->clear() you're calling QCPGraphDataContainer::clear() - which is what you actually want.

                                  Calling pq_plot->graph(g)->data().data().clear() (as per your example) effectively calls QCPGraphDataContainer::clear() because QSharedPointer::data() returns the raw pointer managed by the shared pointer.
                                  Therefore, pq_plot->graph(g)->data().data().clear() and pq_plot->graph(g)->data()->clear() are equivalent.

                                  I hope this helps to prevent confusion for people that come across this in the future.

                                  Industrial process automation software: https://simulton.com
                                  Embedded Graphics & GUI library: https://ugfx.io

                                  JamshidJ Q 2 Replies Last reply
                                  6
                                  • Joel BodenmannJ Joel Bodenmann

                                    @Scarab said in QCustomPlot clear Data:

                                    don't know why to use ->data().data() but it works for me.

                                    The type returned by QCPGraph::data() is a shared pointer to the data container. Both the shared pointer as well as the object the shared pointer is pointing to have a clear() function:

                                    • If you do pq_plot->graph(g)->data().clear() you are calling QSharedPointer::clear().
                                    • If you do pq_plot->graph(g)->data()->clear() you're calling QCPGraphDataContainer::clear() - which is what you actually want.

                                    Calling pq_plot->graph(g)->data().data().clear() (as per your example) effectively calls QCPGraphDataContainer::clear() because QSharedPointer::data() returns the raw pointer managed by the shared pointer.
                                    Therefore, pq_plot->graph(g)->data().data().clear() and pq_plot->graph(g)->data()->clear() are equivalent.

                                    I hope this helps to prevent confusion for people that come across this in the future.

                                    JamshidJ Offline
                                    JamshidJ Offline
                                    Jamshid
                                    wrote on last edited by
                                    #17

                                    @Joel-Bodenmann It was so helpful for me, thanks.

                                    1 Reply Last reply
                                    0
                                    • Joel BodenmannJ Joel Bodenmann

                                      @Scarab said in QCustomPlot clear Data:

                                      don't know why to use ->data().data() but it works for me.

                                      The type returned by QCPGraph::data() is a shared pointer to the data container. Both the shared pointer as well as the object the shared pointer is pointing to have a clear() function:

                                      • If you do pq_plot->graph(g)->data().clear() you are calling QSharedPointer::clear().
                                      • If you do pq_plot->graph(g)->data()->clear() you're calling QCPGraphDataContainer::clear() - which is what you actually want.

                                      Calling pq_plot->graph(g)->data().data().clear() (as per your example) effectively calls QCPGraphDataContainer::clear() because QSharedPointer::data() returns the raw pointer managed by the shared pointer.
                                      Therefore, pq_plot->graph(g)->data().data().clear() and pq_plot->graph(g)->data()->clear() are equivalent.

                                      I hope this helps to prevent confusion for people that come across this in the future.

                                      Q Offline
                                      Q Offline
                                      QtTester
                                      wrote on last edited by
                                      #18

                                      @Joel-Bodenmann said in QCustomPlot clear Data:

                                      iner::clear()
                                      I have tested for one hour, the memory grow from 8192k to 9600k,when i call clear(),the memory is still 9600k, seems not release.

                                      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
                                      • Unsolved