QCustomPlot Demo 范例Word下载.docx
- 文档编号:20255225
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:63
- 大小:1MB
QCustomPlot Demo 范例Word下载.docx
《QCustomPlot Demo 范例Word下载.docx》由会员分享,可在线阅读,更多相关《QCustomPlot Demo 范例Word下载.docx(63页珍藏版)》请在冰豆网上搜索。
x[i]=i;
y0[i]=qExp(-i/150.0)*qCos(i/10.0);
//exponentiallydecayingcosine
y1[i]=qExp(-i/150.0);
//exponentialenvelope
}
//configurerightandtopaxistoshowticksbutnolabels:
//(seeQCPAxisRect:
setupFullAxesBoxforaquickermethodtodothis)
xAxis2->
setVisible(true);
setTickLabels(false);
yAxis2->
//makeleftandbottomaxesalwaystransfertheirrangestorightandtopaxes:
connect(customPlot->
xAxis,SIGNAL(rangeChanged(QCPRange)),customPlot->
xAxis2,SLOT(setRange(QCPRange)));
yAxis,SIGNAL(rangeChanged(QCPRange)),customPlot->
yAxis2,SLOT(setRange(QCPRange)));
//passdatapointstographs:
setData(x,y0);
setData(x,y1);
//lettherangesscalethemselvessograph0fitsperfectlyinthevisiblearea:
rescaleAxes();
//samethingforgraph1,butonlyenlargeranges(incasegraph1issmallerthangraph0):
rescaleAxes(true);
//Note:
wecouldhavealsojustcalledcustomPlot->
instead
//Allowusertodragaxisrangeswithmouse,zoomwithmousewheelandselectgraphsbyclicking:
setInteractions(QCP:
iRangeDrag|QCP:
iRangeZoom|QCP:
iSelectPlottables);
SincScatterDemo
legend->
setFont(QFont("
Helvetica"
9));
//setlocaletoenglish,sowegetenglishdecimalseparator:
setLocale(QLocale(QLocale:
English,QLocale:
UnitedKingdom));
//addconfidencebandgraphs:
QPenpen;
pen.setStyle(Qt:
DotLine);
pen.setWidth
(1);
pen.setColor(QColor(180,180,180));
setName("
ConfidenceBand68%"
);
setPen(pen);
setBrush(QBrush(QColor(255,50,30,20)));
removeItem(customPlot->
itemCount()-1);
//don'
tshowtwoconfidencebandgraphsinlegend
setChannelFillGraph(customPlot->
graph
(1));
//addtheorycurvegraph:
DashLine);
pen.setWidth
(2);
pen.setColor(Qt:
red);
graph
(2)->
TheoryCurve"
//adddatapointgraph:
graph(3)->
setLineStyle(QCPGraph:
lsNone);
setScatterStyle(QCPScatterStyle(QCPScatterStyle:
ssCross,4));
setErrorType(QCPGraph:
etValue);
setErrorPen(QPen(QColor(180,180,180)));
Measurement"
//generateidealsinccurvedataandsomerandomlyperturbeddataforscatterplot:
x0(250),y0(250);
yConfUpper(250),yConfLower(250);
x0[i]=(i/249.0-0.5)*30+0.01;
//byaddingasmalloffsetwemakesurenotdodividebyzeroinnextcodeline
y0[i]=qSin(x0[i])/x0[i];
//sincfunction
yConfUpper[i]=y0[i]+0.15;
yConfLower[i]=y0[i]-0.15;
x0[i]*=1000;
x1(50),y1(50),y1err(50);
50;
//generateagaussiandistributedrandomnumber:
doubletmp1=rand()/(double)RAND_MAX;
doubletmp2=rand()/(double)RAND_MAX;
doubler=qSqrt(-2*qLn(tmp1))*qCos(2*M_PI*tmp2);
//box-mullertransformforgaussiandistribution
//sety1tovalueofy0plusarandomgaussianpertubation:
x1[i]=(i/50.0-0.5)*30+0.25;
y1[i]=qSin(x1[i])/x1[i]+r*0.15;
x1[i]*=1000;
y1err[i]=0.15;
//passdatatographsandletQCustomPlotdeterminetheaxesrangessothewholethingisvisible:
setData(x0,yConfUpper);
setData(x0,yConfLower);
setData(x0,y0);
setDataValueError(x1,y1,y1err);
//setuplookofbottomticklabels:
xAxis->
setTickLabelRotation(30);
setAutoTickCount(9);
setNumberFormat("
ebc"
setNumberPrecision
(1);
moveRange(-10);
//maketoprightaxesclonesofbottomleftaxes.Looksprettier:
axisRect()->
setupFullAxesBox();
ScatterStyleDemo
9));
setRowSpacing(-3);
QCPScatterStyle:
ScatterShape>
shapes;
shapes<
<
QCPScatterStyle:
ssCross;
ssPlus;
ssCircle;
ssDisc;
ssSquare;
ssDiamond;
ssStar;
ssTriangle;
ssTriangleInverted;
ssCrossSquare;
ssPlusSquare;
ssCrossCircle;
ssPlusCircle;
ssPeace;
ssCustom;
//addgraphswithdifferentscatterstyles:
shapes.size();
pen.setColor(QColor(qSin(i*0.3)*100+100,qSin(i*0.6+0.7)*100+100,qSin(i*0.4+0.6)*100+100));
//generatedata:
x(10),y(10);
for(intk=0;
k<
10;
++k)
x[k]=k/10.0*4*3.14+0.01;
y[k]=7*qSin(x[k])/x[k]+(shapes.size()-i)*5;
graph()->
setData(x,y);
setName(QCPScatterStyle:
staticMetaObject.enumerator(QCPScatterStyle:
staticMetaObject.indexOfEnumerator("
ScatterShape"
)).valueToKey(shapes.at(i)));
lsLine);
//setscatterstyle:
if(shapes.at(i)!
=QCPScatterStyle:
ssCustom)
setScatterStyle(QCPScatterStyle(shapes.at(i),10));
else
QPainterPathcustomScatterPath;
3;
customScatterPath.cubicTo(qCos(2*M_PI*i/3.0)*9,qSin(2*M_PI*i/3.0)*9,qCos(2*M_PI*(i+0.9)/3.0)*9,qSin(2*M_PI*(i+0.9)/3.0)*9,0,0);
setScatterStyle(QCPScatterStyle(customScatterPath,QPen(Qt:
black,0),QColor(40,70,255,50),10));
//setblankaxislines:
setTicks(false);
yAxis->
//maketoprightaxesclonesofbottomleftaxes:
StyledPlotDemo
//preparedata:
x1(20),y1(20);
x2(100),y2(100);
x3(20),y3(20);
x4(20),y4(20);
x1.size();
x1[i]=i/(double)x1.size()*10;
y1[i]=qCos(x1[i]*0.8+qSin(x1[i]*0.16+1.0))*qSin(x1[i]*0.54)+1.4;
x2.size();
x2[i]=i/(double)x2.size()*10;
y2[i]=qCos(x2[i]*0.85+qSin(x2[i]*0.165+1.1))*qSin(x2[i]*0.50)+1.7;
x3.size();
x3[i]=i/(double)x3.size()*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;
x4.size();
x4[i]=x3[i];
y4[i]=(0.5-y3[i])+((x4[i]-2)*(x4[i]-2)*0.02);
//createandconfigureplottables:
QCPGraph*graph1=customPlot->
graph1->
setData(x1,y1);
ssCircle,QPen(Qt:
black,1.5),QBrush(Qt:
white),9));
setPen(QPen(QColor(120,120,120),2));
QCPGraph*graph2=customPlot->
graph2->
setData(x2,y2);
setPen(Qt:
NoPen);
setBrush(QColor(200,200,200,20));
setChannelFillGraph(graph1);
QCPBars*bars1=newQCPBars(customPlot->
xAxis,customPlot->
yAxis);
addPlottable(bars1);
bars1->
setWidth(9/(double)x3.size());
setData(x3,y3);
setBrush(QColor(10,140,70,160));
QCPBars*bars2=newQCPBars(customPlot->
addPlottable(bars2);
bars2->
setWidth(9/(double)x4.size());
setData(x4,y4);
setBrush(QColor(10,100,50,70));
moveAbove(bars1);
//movebarsabovegraphsandgridbelowbars:
addLayer("
abovemain"
customPlot->
layer("
main"
),QCustomPlot:
limAbove);
belowmain"
limBelow);
setLayer("
grid()->
//setsomepens,brushesandbackgrounds:
setBasePen(QPen(Qt:
white,1));
setTickPen(QPen(Qt:
setSubTickPen(QPen(Qt:
setTickLabelColor(Qt:
white);
setTickLabelColor(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- QCustomPlot Demo 范例