Approaches to improve chart efficiency in C# winforms?












-2















I have a simple chart that prints values read by a photoresistor. Also the chart prints 2 thresholds. My problem is that when more than 300 or 400 points are printed in the chart, it becomes quite unreadable (extraordinarily difficult to read or comprehend all the values printed).



Look at this:



enter image description here



I thought that using an incremental counter and doing this:



if (i > 300) {
chart1.Invoke(new Action(() => {chart1.Series[0].Points.Clear(); }));
chart1.Invoke(new Action(() => { chart1.Series[1].Points.Clear(); }));
chart1.Invoke(new Action(() => { chart1.Series[2].Points.Clear(); }));
i = 0;
}


The problem is solved as my chart becomes empty and readable again, but I don't want to clear and lose all my previous data.



What alternative solutions can I try so my data won't be deleted, but keeping my chart readable?










share|improve this question

























  • Becuase you didn't explain what "unreadable" means ... it pretty obvious that it will looks bad if you wana put 400 points in less than 400 pixels (especially if line has thickness more than 1px)

    – Selvin
    Jan 1 at 18:05













  • @Selvin thanks for the explanation, try to remember that although it is not mandatory, the Exchange community recommends to explain why you down vote a post link here so we can all improve our posts...

    – Keka Bron
    Jan 1 at 18:11













  • You may look into setting up a scale view window. A few examples

    – TaW
    Jan 1 at 20:16
















-2















I have a simple chart that prints values read by a photoresistor. Also the chart prints 2 thresholds. My problem is that when more than 300 or 400 points are printed in the chart, it becomes quite unreadable (extraordinarily difficult to read or comprehend all the values printed).



Look at this:



enter image description here



I thought that using an incremental counter and doing this:



if (i > 300) {
chart1.Invoke(new Action(() => {chart1.Series[0].Points.Clear(); }));
chart1.Invoke(new Action(() => { chart1.Series[1].Points.Clear(); }));
chart1.Invoke(new Action(() => { chart1.Series[2].Points.Clear(); }));
i = 0;
}


The problem is solved as my chart becomes empty and readable again, but I don't want to clear and lose all my previous data.



What alternative solutions can I try so my data won't be deleted, but keeping my chart readable?










share|improve this question

























  • Becuase you didn't explain what "unreadable" means ... it pretty obvious that it will looks bad if you wana put 400 points in less than 400 pixels (especially if line has thickness more than 1px)

    – Selvin
    Jan 1 at 18:05













  • @Selvin thanks for the explanation, try to remember that although it is not mandatory, the Exchange community recommends to explain why you down vote a post link here so we can all improve our posts...

    – Keka Bron
    Jan 1 at 18:11













  • You may look into setting up a scale view window. A few examples

    – TaW
    Jan 1 at 20:16














-2












-2








-2








I have a simple chart that prints values read by a photoresistor. Also the chart prints 2 thresholds. My problem is that when more than 300 or 400 points are printed in the chart, it becomes quite unreadable (extraordinarily difficult to read or comprehend all the values printed).



Look at this:



enter image description here



I thought that using an incremental counter and doing this:



if (i > 300) {
chart1.Invoke(new Action(() => {chart1.Series[0].Points.Clear(); }));
chart1.Invoke(new Action(() => { chart1.Series[1].Points.Clear(); }));
chart1.Invoke(new Action(() => { chart1.Series[2].Points.Clear(); }));
i = 0;
}


The problem is solved as my chart becomes empty and readable again, but I don't want to clear and lose all my previous data.



What alternative solutions can I try so my data won't be deleted, but keeping my chart readable?










share|improve this question
















I have a simple chart that prints values read by a photoresistor. Also the chart prints 2 thresholds. My problem is that when more than 300 or 400 points are printed in the chart, it becomes quite unreadable (extraordinarily difficult to read or comprehend all the values printed).



Look at this:



enter image description here



I thought that using an incremental counter and doing this:



if (i > 300) {
chart1.Invoke(new Action(() => {chart1.Series[0].Points.Clear(); }));
chart1.Invoke(new Action(() => { chart1.Series[1].Points.Clear(); }));
chart1.Invoke(new Action(() => { chart1.Series[2].Points.Clear(); }));
i = 0;
}


The problem is solved as my chart becomes empty and readable again, but I don't want to clear and lose all my previous data.



What alternative solutions can I try so my data won't be deleted, but keeping my chart readable?







c# .net winforms charts mschart






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 1 at 18:41









Daniel A. White

150k37296376




150k37296376










asked Jan 1 at 17:53









Keka BronKeka Bron

10610




10610













  • Becuase you didn't explain what "unreadable" means ... it pretty obvious that it will looks bad if you wana put 400 points in less than 400 pixels (especially if line has thickness more than 1px)

    – Selvin
    Jan 1 at 18:05













  • @Selvin thanks for the explanation, try to remember that although it is not mandatory, the Exchange community recommends to explain why you down vote a post link here so we can all improve our posts...

    – Keka Bron
    Jan 1 at 18:11













  • You may look into setting up a scale view window. A few examples

    – TaW
    Jan 1 at 20:16



















  • Becuase you didn't explain what "unreadable" means ... it pretty obvious that it will looks bad if you wana put 400 points in less than 400 pixels (especially if line has thickness more than 1px)

    – Selvin
    Jan 1 at 18:05













  • @Selvin thanks for the explanation, try to remember that although it is not mandatory, the Exchange community recommends to explain why you down vote a post link here so we can all improve our posts...

    – Keka Bron
    Jan 1 at 18:11













  • You may look into setting up a scale view window. A few examples

    – TaW
    Jan 1 at 20:16

















Becuase you didn't explain what "unreadable" means ... it pretty obvious that it will looks bad if you wana put 400 points in less than 400 pixels (especially if line has thickness more than 1px)

– Selvin
Jan 1 at 18:05







Becuase you didn't explain what "unreadable" means ... it pretty obvious that it will looks bad if you wana put 400 points in less than 400 pixels (especially if line has thickness more than 1px)

– Selvin
Jan 1 at 18:05















@Selvin thanks for the explanation, try to remember that although it is not mandatory, the Exchange community recommends to explain why you down vote a post link here so we can all improve our posts...

– Keka Bron
Jan 1 at 18:11







@Selvin thanks for the explanation, try to remember that although it is not mandatory, the Exchange community recommends to explain why you down vote a post link here so we can all improve our posts...

– Keka Bron
Jan 1 at 18:11















You may look into setting up a scale view window. A few examples

– TaW
Jan 1 at 20:16





You may look into setting up a scale view window. A few examples

– TaW
Jan 1 at 20:16












1 Answer
1






active

oldest

votes


















0














When you go to add a new point, check if you have more than 300 points. If you do, then remove the oldest point and add the newest one.



if (chart1.Series[0].Points.Count > 300)
{
chart1.Series[0].Points.RemoveAt(0);
}


Then add your new point.






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%2f53997657%2fapproaches-to-improve-chart-efficiency-in-c-sharp-winforms%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    When you go to add a new point, check if you have more than 300 points. If you do, then remove the oldest point and add the newest one.



    if (chart1.Series[0].Points.Count > 300)
    {
    chart1.Series[0].Points.RemoveAt(0);
    }


    Then add your new point.






    share|improve this answer




























      0














      When you go to add a new point, check if you have more than 300 points. If you do, then remove the oldest point and add the newest one.



      if (chart1.Series[0].Points.Count > 300)
      {
      chart1.Series[0].Points.RemoveAt(0);
      }


      Then add your new point.






      share|improve this answer


























        0












        0








        0







        When you go to add a new point, check if you have more than 300 points. If you do, then remove the oldest point and add the newest one.



        if (chart1.Series[0].Points.Count > 300)
        {
        chart1.Series[0].Points.RemoveAt(0);
        }


        Then add your new point.






        share|improve this answer













        When you go to add a new point, check if you have more than 300 points. If you do, then remove the oldest point and add the newest one.



        if (chart1.Series[0].Points.Count > 300)
        {
        chart1.Series[0].Points.RemoveAt(0);
        }


        Then add your new point.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Jan 2 at 17:33









        BaddackBaddack

        9491125




        9491125
































            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%2f53997657%2fapproaches-to-improve-chart-efficiency-in-c-sharp-winforms%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

            MongoDB - Not Authorized To Execute Command

            How to fix TextFormField cause rebuild widget in Flutter

            in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith