
- معرفی
- دانلود
- مثالها
- افزودن به پروژه
- الگوریتم Adaptive sampling
معرفی
QCustomPlot یکی از کتابخانههای معروف و پر کاربرد توسعه داده شده به وسیله کیوت است که به دلیل سادگی در استفاده و بهینگی بالا یکی از اولین انتخاب های هر تیم توسعه برای استفاده از پلات در پروژه نوشته شده با س یپلاس پلاس و کیوت است. از مزیتهای این پلات در مقایسه با نمودارهای پیشفرض کیوت میتوان به امکانات فراوان و انواع بیشتر پلات اشاره کرد. همچنین وجود الگوریتم Adaptive sampling برای downsample کردن دادهها اشاره کرد.
دانلود
برای دانلود این کتابخانه کافیست به بخش دانلود در سایت ر سمی آن مراجعه نمایید download QCustomPlot
مثالها
بعد از دانلود این کتابخانه کافیست فایل .pro مثال ان را با Qt Creator اجرا کنید.
در فایل MainWindow یک تابع برای مشخص نمودن مثال در حال اجرا وجود دارد و در صورتی که عدد مورد نظر خود که در واقع عدد مثال مورد نظر است را به عنوان ورودی تابع پاس بدهید میتوانید مثال مورد نظر خود را بعد از اجرای پروژه ببینید و سورس تمامی مثالها نیز در پروژه موجود است و میتوانید برای یادگیری قابلیتهای QCustomPlot از آنها یاری بگیرید.
افزودن به پروژه
بسته به این که کدام نسخه از خروجی های قابل دانلود QCsutomplot را دانلود کنید نحوه افزودن آن به پروژه نیز متفاوت است. ساده ترین روش استفاده از آن به دلیل ایجاد یک نسخه تک کلاس، دانلود سورس و فزودن آن به پروژه است. پس در صورتی که شما سورس را دانلود نمایید میتوانید به راحتی با کپی کردن فایلهای QCustomPlot.cpp و QCustomPlot.h در پروژه از آن استفاده کنید. البته باید به این نکته توجه کنید که پیشنیازهای این پلات از Qt در پروژه شما افزوده شده باشد ولی در صورتی که شما GUI کیوت را در پروژه داشته باشید میتوانید به راحتی این فایلها را در پروژه کپی کرده و از ان استفاده نمایید.
الگوریتم Adaptive sampling
همانطور که در تصویر مشاهده میکنید در این مثال بعد از اعمال Adaptive sampling زمان مورد نیاز برای رسم نمودار 96 درصد کاهش داشته و خروجی تفاوت چندانی ندارد.

کتابخانه QCustomPlot برای بهینگی و downsample از الگوریتم Adaptive sampling استفاده میکند. این الگوریتم یک روش نمایش محور بوده و بر اساس نزدیکی نقاط مورد نظر وقتی چند نقطه در یک مکان قرار میگیرند و با توجه به DPI صفحه رسم چند نقطه با رسم یک نقطه از نظر نمایشی تفاوتی ندارد و فقط بار اضافی برای ترسیم به وجود میآید فقط یکی از انها را رسم مینماید و تعداد نقاط کشیده شده را به زیر 10 هزار نقطه میرساند. در واقع در اکثر مواقع با downsample کردن به این روش نمای ظاهری در نمودار تفاوت چندانی نمیکند و این الگوریتم به صورت پیشفرض در QCustomPlot فعال است و در صورتی که به آن نیاز ندارید میتوانید آن را با استفاده از تابع void setAdaptiveSampling (bool enabled)
از کلاس QCPGraph
آن را غیر فعال کنید.