Qt第三庫QCustomPlot—繪圖四

styleddemo.png
  • 坐標(biāo)軸:QCPAxis(xAxis,yAxis,xAxis1,yAxis2等四個成員變量)
    setTickStep(double step);//設(shè)置刻度間距
    setTickVector(const QVector<double> &vec);//將坐標(biāo)刻度設(shè)置為vec
customPlot->legend->setVisible(true);  //圖例legend
QFont legendFont = font();  
legendFont.setPointSize(9); 
customPlot->legend->setFont(legendFont);  
customPlot->legend->setBrush(QBrush(QColor(255,255,255,230)));  //填充色
customPlot->axisRect()->insetLayout()->setInsetAlignment(0, Qt::AlignBottom|Qt::AlignRight);
customPlot->addGraph(customPlot->yAxis, customPlot->xAxis);  
customPlot->graph(0)->setPen(QPen(QColor(255, 100, 0))); //折線筆色
customPlot->graph(0)->setBrush(QBrush(QPixmap("./dali.png")));  //填充圖片  
customPlot->graph(0)->setLineStyle(QCPGraph::lsLine);  
customPlot->graph(0)->setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssDisc, 5)); //折線風(fēng)格
customPlot->graph(0)->setName("Left maxwell function"); //折線名稱
// prepare data:
QVector<double> x1(20), y1(20);
QVector<double> x2(100), y2(100);
QVector<double> x3(20), y3(20);
QVector<double> x4(20), y4(20);
for (int i=0; i<x1.size(); ++i)
{
  x1[i] = i/(double)(x1.size()-1)*10;
  y1[i] = qCos(x1[i]*0.8+qSin(x1[i]*0.16+1.0))*qSin(x1[i]*0.54)+1.4;
}
for (int i=0; i<x2.size(); ++i)
{
  x2[i] = i/(double)(x2.size()-1)*10;
  y2[i] = qCos(x2[i]*0.85+qSin(x2[i]*0.165+1.1))*qSin(x2[i]*0.50)+1.7;
}
for (int i=0; i<x3.size(); ++i)
{
  x3[i] = i/(double)(x3.size()-1)*10;
  y3[i] = 0.05+3*(0.5+qCos(x3[i]*x3[i]*0.2+2)*0.5)/(double)(x3[i]+0.7)+qrand()/(double)RAND_MAX*0.01;
}
for (int i=0; i<x4.size(); ++i)
{
  x4[i] = x3[i];
  y4[i] = (0.5-y3[i])+((x4[i]-2)*(x4[i]-2)*0.02);
}
 
// create and configure plottables:
QCPGraph *graph1 = customPlot->addGraph();
graph1->setData(x1, y1);
graph1->setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssCircle, QPen(Qt::black, 1.5), QBrush(Qt::white), 9));
graph1->setPen(QPen(QColor(120, 120, 120), 2));
 
QCPGraph *graph2 = customPlot->addGraph();
graph2->setData(x2, y2);
graph2->setPen(Qt::NoPen);
graph2->setBrush(QColor(200, 200, 200, 20));
graph2->setChannelFillGraph(graph1);
 
QCPBars *bars1 = new QCPBars(customPlot->xAxis, customPlot->yAxis);
bars1->setWidth(9/(double)x3.size());
bars1->setData(x3, y3);
bars1->setPen(Qt::NoPen);
bars1->setBrush(QColor(10, 140, 70, 160));
 
QCPBars *bars2 = new QCPBars(customPlot->xAxis, customPlot->yAxis);
bars2->setWidth(9/(double)x4.size());
bars2->setData(x4, y4);
bars2->setPen(Qt::NoPen);
bars2->setBrush(QColor(10, 100, 50, 70));
bars2->moveAbove(bars1);
 
// move bars above graphs and grid below bars:
customPlot->addLayer("abovemain", customPlot->layer("main"), QCustomPlot::limAbove);
customPlot->addLayer("belowmain", customPlot->layer("main"), QCustomPlot::limBelow);
graph1->setLayer("abovemain");
customPlot->xAxis->grid()->setLayer("belowmain");
customPlot->yAxis->grid()->setLayer("belowmain");
 
// set some pens, brushes and backgrounds:
customPlot->xAxis->setBasePen(QPen(Qt::white, 1));
customPlot->yAxis->setBasePen(QPen(Qt::white, 1));
customPlot->xAxis->setTickPen(QPen(Qt::white, 1));
customPlot->yAxis->setTickPen(QPen(Qt::white, 1));
customPlot->xAxis->setSubTickPen(QPen(Qt::white, 1));
customPlot->yAxis->setSubTickPen(QPen(Qt::white, 1));
customPlot->xAxis->setTickLabelColor(Qt::white);
customPlot->yAxis->setTickLabelColor(Qt::white);
customPlot->xAxis->grid()->setPen(QPen(QColor(140, 140, 140), 1, Qt::DotLine));
customPlot->yAxis->grid()->setPen(QPen(QColor(140, 140, 140), 1, Qt::DotLine));
customPlot->xAxis->grid()->setSubGridPen(QPen(QColor(80, 80, 80), 1, Qt::DotLine));
customPlot->yAxis->grid()->setSubGridPen(QPen(QColor(80, 80, 80), 1, Qt::DotLine));
customPlot->xAxis->grid()->setSubGridVisible(true);
customPlot->yAxis->grid()->setSubGridVisible(true);
customPlot->xAxis->grid()->setZeroLinePen(Qt::NoPen);
customPlot->yAxis->grid()->setZeroLinePen(Qt::NoPen);
customPlot->xAxis->setUpperEnding(QCPLineEnding::esSpikeArrow);
customPlot->yAxis->setUpperEnding(QCPLineEnding::esSpikeArrow);
QLinearGradient plotGradient;
plotGradient.setStart(0, 0);
plotGradient.setFinalStop(0, 350);
plotGradient.setColorAt(0, QColor(80, 80, 80));
plotGradient.setColorAt(1, QColor(50, 50, 50));
customPlot->setBackground(plotGradient);
QLinearGradient axisRectGradient;
axisRectGradient.setStart(0, 0);
axisRectGradient.setFinalStop(0, 350);
axisRectGradient.setColorAt(0, QColor(80, 80, 80));
axisRectGradient.setColorAt(1, QColor(30, 30, 30));
customPlot->axisRect()->setBackground(axisRectGradient);
 
customPlot->rescaleAxes();
customPlot->yAxis->setRange(0, 2);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末啡浊,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子有送,更是在濱河造成了極大的恐慌可款,老刑警劉巖嚷那,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異筑悴,居然都是意外死亡人弓,警方通過查閱死者的電腦和手機(jī)鹰椒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門锡移,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人漆际,你說我怎么就攤上這事淆珊。” “怎么了奸汇?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵施符,是天一觀的道長。 經(jīng)常有香客問我擂找,道長戳吝,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任贯涎,我火速辦了婚禮听哭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己欢唾,他們只是感情好且警,可當(dāng)我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布粉捻。 她就那樣靜靜地躺著礁遣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪肩刃。 梳的紋絲不亂的頭發(fā)上祟霍,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機(jī)與錄音盈包,去河邊找鬼沸呐。 笑死,一個胖子當(dāng)著我的面吹牛呢燥,可吹牛的內(nèi)容都是我干的崭添。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼叛氨,長吁一口氣:“原來是場噩夢啊……” “哼呼渣!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起寞埠,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤屁置,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后仁连,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蓝角,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年饭冬,在試婚紗的時候發(fā)現(xiàn)自己被綠了使鹅。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡昌抠,死狀恐怖患朱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情扰魂,我是刑警寧澤麦乞,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站劝评,受9級特大地震影響姐直,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蒋畜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一声畏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦插龄、人聲如沸愿棋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽糠雨。三九已至,卻和暖如春徘跪,著一層夾襖步出監(jiān)牢的瞬間甘邀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工垮庐, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留松邪,地道東北人。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓哨查,卻偏偏與公主長得像逗抑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子寒亥,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 一邮府、下載Charts后可以到里面的內(nèi)容 將下載后解壓后的整個文件夾復(fù)制到工程里 但是只導(dǎo)入 工程Charts.xc...
    浪周周_f157閱讀 1,083評論 0 1
  • 以下內(nèi)容是從開源庫自帶的例子中選出的有實用性的高級用法及部分代碼 CPTLineCap類:箭頭指示器 例如: CP...
    jerry_tom_b8閱讀 2,793評論 2 3
  • 這篇文章主要講述Echarts設(shè)置字體和線條的顏色相關(guān)操作筆記,希望文章對你有所幫助护盈,主要是自己的在線筆記吧挟纱。我在...
    藍(lán)色夢想家閱讀 9,882評論 1 1
  • 第一步:引入chart.js文件。此工具庫在全局命名空間中定義了chart變量腐宋。 chart.js文件下載Rele...
    西可目閱讀 3,643評論 2 4
  • 一個很好的圖表制作第三方框架的使用:Charts 創(chuàng)建折線圖 lineChartView紊服,創(chuàng)建如下圖的效果 初始化...
    StoneWing閱讀 3,328評論 5 5