2013-09-05 13 views
6

से डेटा प्लॉट करना मैं एक वेक्टर के अंदर प्राप्त और संग्रहीत डेटा के आधार पर एक ग्राफ प्लॉट करने का प्रयास कर रहा हूं, लेकिन, मुझे वहां कोई ट्यूटोरियल या संदर्भ नहीं मिल रहा है और मुझे कोई संकेत दे रहा है मुझे क्या करने की ज़रूरत है। तो यहां मेरा कोड है:सी ++ क्यूवीटी - एक वेक्टर

class Plotter : public QwtPlot 
{ 


    public: 

    Plotter() { 

    } 
}; 



int main(int argc, char **argv) 
{ 

    QApplication app(argc, argv); 

    //Plotter *d_plot = new Plotter(); 

    Plotter* d_plot = new Plotter(); 

    d_plot->setTitle("DEMO"); 
    d_plot->setCanvasBackground(Qt::white); 
    d_plot->setAxisScale(QwtPlot::yLeft, 0.1, 50.0); 
    d_plot->setAxisScale(QwtPlot::yRight, 0.1, 50.00); 

    // PLOT THE DATA 
    std::vector<double> data; 
    data.push_back(1.03); 
    data.push_back(13.12); 
    //.... 

    d_plot->resize(600, 400); 
    d_plot->show(); 


    return app.exec(); 
} 

क्या कोई मुझे कोई विचार दे सकता है कि मैं डेटा का साजिश करने के लिए किस फ़ंक्शन का उपयोग कर सकता हूं?

धन्यवाद

+0

मैं भी अब इस समस्या का सामना करना पड़ रहा सुझाव देना चाहेंगे। बस पूछना चाहते हैं, मैंने देखा है कि आपके प्रश्न में केवल एक डेटा वेक्टर है, और दिए गए उत्तरों में 2 डेटा वैक्टर शामिल हैं। अन्य वेक्टर क्या होने का अनुमान है? आशा है कि आप मदद कर सकते हैं। धन्यवाद ( – rockinfresh

उत्तर

6

चेक QwtPlot डॉक्स: सामान्य रूप से आप एक QwtPlotCurve बनाने के लिए, QwtPlotCurve::setSamples का उपयोग उस में डेटा तो QwtPlotCurve::attach पाने के लिए डेटा तैयार मिलता है। यानी

std::vector<double> x; 
std::vector<double> y; 
//fill x and y vectors 
//make sure they're the same size etc 
QwtPlotCurve curve("Foo"); 
//or use &x[ 0 ] or &(*x.first()) pre-C++11 
cure.setSamples(x.data(), y.data(), (int) x.size()); 
curve.attach(&plot); 

http://qwt.sourceforge.net/class_qwt_plot_curve.html

http://qwt.sourceforge.net/class_qwt_plot.html

+0

उत्तर के लिए धन्यवाद। आपको '& plot' कहां से मिलता है? क्योंकि, अगर मैंने अपने ओ/पी में किए गए' & d_plot' का उपयोग किया है तो यह मुझे एक त्रुटि देता है: 'त्रुटि: प्रकार के पैरामीटर को प्रारंभ नहीं कर सकता' QwtPlot * 'प्रकार के एक प्रकार के साथ' प्लॉटर ** ' my_curve.attach (& d_plot);' कोई विचार? आपकी मदद के लिए धन्यवाद :) – Phorce

+0

अपने मामले के लिए, बस d_plot पास करें क्योंकि यह पहले से ही एक सूचक है – stijn

+0

उत्तर के लिए धन्यवाद। मैंने ऐसा किया, अब सब संकलित .. हालांकि, जब मैं एप्लिकेशन चलाता हूं, तो कुछ भी नहीं दिख रहा है? क्या मुझे कलम रंग सेट करने की ज़रूरत है? धन्यवाद :) – Phorce

4

एक तरह से अपने भूखंड के लिए एक वक्र संलग्न करने के लिए हो सकता है,:

QwtPlotCurve myCurve; 
myCurve->attach(&d_plot); 

आप कर सकते थे

कुछ इस तरह होना चाहिए फिर फू का उपयोग करें (एक सदस्य समारोह में, या जहां भी आपको चाहिए) nction QwtPlotCurve::setRawSample जो निम्नलिखित काफी व्याख्यात्मक हस्ताक्षर हैं:

void QwtPlotCurve::setRawSample(const double* xData, const double* yData, int size); 

इसके साथ अपने डेटा सेट और फिर replot() फोन साजिश ताज़ा करने के लिए। इसका मतलब है कि आपके पास x मानों के लिए एक वेक्टर भी होना चाहिए।

कोड इस तरह दिखेगा:

int main(int argc, char **argv) 
{ 
    //... 
    Plotter* d_plot = new Plotter(); 

    //Plot config 

    // PLOT THE DATA 
    std::vector<double> data_y; 
    data_y.push_back(1.03); 
    data_y.push_back(13.12); 
    std::vector<double> data_x; 
    data_x.push_back(1.0); 
    data_x.push_back(2.0); 
    //.... 
    myCurve->setRawSample(data_x.data(),data_y.data(),data_y.size()); 
    d_plot->resize(600, 400); 
    d_plot->replot(); 
    d_plot->show(); 
    //... 
} 

मैं आप अध्ययन Qwt doc about curve

संबंधित मुद्दे