设置横轴自定义坐标
QList<double> ticksX[QwtScaleDiv::NTickTypes];
double dInternalX1 = step*1.0/iXAxisSubParts;
double dInternalX = (step*iXAxisParts-0)*1.0/iXAxisParts;
for(int i=0;i<iXAxisParts+1;++i)
{
double tmpData = i*dInternalX*1.0;
qDebug()<<"iii"<<i<<"tmpData"<<tmpData;
ticksX[QwtScaleDiv::MajorTick].append(tmpData*1.0);
for(int j=0;j<iXAxisSubParts-1;++j)
{
double data = tmpData+(j+1)*(dInternalX1);
ticksX[QwtScaleDiv::MinorTick].append(data);
}
}
QwtScaleDiv scaleDivX(
ticksX[QwtScaleDiv::MajorTick].first(),
ticksX[QwtScaleDiv::MajorTick].last(),
ticksX );
setAxisScaleDiv(QwtPlot::xBottom, scaleDivX);
设置纵轴自定义坐标
double dInternal1 = dInternal/iYAxisSubPart;
for(int i=0;i<iYAxisPart;++i)
{
double tmpData = minY*1.0+i*dInternal*1.0;
qDebug()<<"iii"<<i<<"tmpData"<<tmpData;
ticks[QwtScaleDiv::MajorTick].append(tmpData*1.0);
for(int j=0;j<iYAxisSubPart;++j)
{
double data = tmpData+(j+1)*dInternal1;
ticks[QwtScaleDiv::MinorTick].append(data);
}
}
QwtScaleDiv scaleDiv(
ticks[QwtScaleDiv::MajorTick].first(),
ticks[QwtScaleDiv::MajorTick].last(),
ticks );
setAxisScaleDiv(QwtPlot::yLeft, scaleDiv);
设置表格与外框一致
plotLayout()->setAlignCanvasToScales(true);
设置Y轴显示一位小数
class VScaleDraw: public QwtScaleDraw //自画坐标轴
{
public:
VScaleDraw()
{
}
virtual QwtText label( double v ) const //重绘坐标轴 刻度值
{
return QwtText( QString::number( v/10 ) ); //默认的 大刻度的时候 才会显示
}
};