71 int xp1, yp1, xp2, yp2;
72 zoomRect.getCoords(&xp1, &yp1, &xp2, &yp2);
73 auto x1 = xAxis->pixelToCoord(xp1);
74 auto x2 = xAxis->pixelToCoord(xp2);
75 auto y1 = yAxis->pixelToCoord(yp1);
76 auto y2 = yAxis->pixelToCoord(yp2);
78 xAxis->setRange(x1, x2);
79 yAxis->setRange(y1, y2);
85 QCustomPlot::mouseReleaseEvent(event);
129 if (
x.size()!=
y.size())
132 QCPGraph *graph =
new QCPGraph(xAxis, yAxis);
134 graph->setName(QString::fromStdString(
name));
135 graph->setPen(QPen(QColor(QRandomGenerator::global()->bounded(256), QRandomGenerator::global()->bounded(256), QRandomGenerator::global()->bounded(256))));
136 graph->setLineStyle(QCPGraph::lsNone);
137 graph->setScatterStyle(symbol);
139 QVector<double> xvals = fromStdVector<double>(
x);
140 QVector<double> yvals = fromStdVector<double>(
y);
142 graph->setData(xvals, yvals);
154 if (
x.size()!=
y.size())
157 QCPGraph *graph =
new QCPGraph(xAxis, yAxis);
159 graph->setName(QString::fromStdString(
name));
160 graph->setPen(QPen(QColor(QRandomGenerator::global()->bounded(256), QRandomGenerator::global()->bounded(256), QRandomGenerator::global()->bounded(256)), 2));
161 graph->setLineStyle(QCPGraph::lsNone);
162 graph->setScatterStyle(symbol);
164 QVector<double> yvals = fromStdVector<double>(
y);
166 QVector<double> ticks;
167 QVector<QString> labels;
168 QVector<double> qvals = fromStdVector<double>(
y);
169 for (
int i=0; i<
y.size(); i++)
171 labels << QString::fromStdString(
x[i]);
173 QSharedPointer<QCPAxisTickerText> textTicker(
new QCPAxisTickerText);
174 textTicker->addTicks(ticks, labels);
175 xAxis->setTicker(textTicker);
176 xAxis->setTickLabelRotation(60);
177 xAxis->setSubTicks(
false);
178 xAxis->setTickLength(0, 4);
180 graph->setData(ticks, yvals);
226 if (
x.size()!=
y.size())
229 QCPGraph *graph =
new QCPGraph(xAxis, yAxis);
231 graph->setName(QString::fromStdString(
name));
232 QPen Pen = QPen(QColor(QRandomGenerator::global()->bounded(256), QRandomGenerator::global()->bounded(256), QRandomGenerator::global()->bounded(256)));
235 graph->setLineStyle(QCPGraph::lsLine);
237 QVector<double> yvals = fromStdVector<double>(
y);
238 QVector<double> xvals = fromStdVector<double>(
x);
240 xAxis->setTickLabelRotation(60);
241 xAxis->setSubTicks(
false);
242 xAxis->setTickLength(0, 4);
244 graph->setData(xvals, yvals);
259 QSharedPointer<QCPAxisTickerLog> logTicker(
new QCPAxisTickerLog);
260 logTicker->setLogBase(10);
261 logTicker->setSubTickCount(10);
262 yAxis->setTicker(logTicker);
263 yAxis->setScaleType(QCPAxis::ScaleType::stLogarithmic);
267 yAxis->setScaleType(QCPAxis::ScaleType::stLinear);
290 legend->setVisible(onoff);
292 { axisRect()->insetLayout()->setInsetAlignment(0, Qt::AlignTop|Qt::AlignHCenter);
293 legend->setBrush(QColor(255, 255, 255, 100));
294 legend->setBorderPen(Qt::NoPen);
295 QFont legendFont = font();
296 legendFont.setPointSize(10);
297 legend->setFont(legendFont);
298 setInteractions(QCP::iRangeDrag | QCP::iRangeZoom);
314 QCPGraph *points =
new QCPGraph(xAxis, yAxis);
315 points->setLineStyle(QCPGraph::lsNone);
316 points->setScatterStyle(
shapes[shape_counter]);
317 points->setPen(QPen(QColor(QRandomGenerator::global()->bounded(256), QRandomGenerator::global()->bounded(256), QRandomGenerator::global()->bounded(256)),2));
319 QMap<double,QString> ticks;
320 for (map<
string,vector<double>>::const_iterator set=data.begin(); set!=data.end(); set++ )
322 for (
int i=0; i<set->second.size(); i++)
323 points->addData(x_val,set->second[i]);
325 ticks[x_val]=QString::fromStdString(set->first);
331 QSharedPointer<QCPAxisTickerText> textTicker(
new QCPAxisTickerText);
332 textTicker->addTicks(ticks);
333 xAxis->setTicker(textTicker);
334 xAxis->setTickLabelRotation(60);
335 xAxis->setSubTicks(
false);
336 xAxis->setTickLength(0, 4);
347 QVector<QCPScatterStyle::ScatterShape> shapes;
348 shapes << QCPScatterStyle::ssCross;
349 shapes << QCPScatterStyle::ssPlus;
350 shapes << QCPScatterStyle::ssCircle;
351 shapes << QCPScatterStyle::ssDisc;
352 shapes << QCPScatterStyle::ssSquare;
353 shapes << QCPScatterStyle::ssDiamond;
354 shapes << QCPScatterStyle::ssStar;
355 shapes << QCPScatterStyle::ssTriangle;
356 shapes << QCPScatterStyle::ssTriangleInverted;
357 shapes << QCPScatterStyle::ssCrossSquare;
358 shapes << QCPScatterStyle::ssPlusSquare;
359 shapes << QCPScatterStyle::ssCrossCircle;
360 shapes << QCPScatterStyle::ssPlusCircle;
361 shapes << QCPScatterStyle::ssPeace;
362 shapes << QCPScatterStyle::ssCross;
363 shapes << QCPScatterStyle::ssPlus;
364 shapes << QCPScatterStyle::ssCircle;
365 shapes << QCPScatterStyle::ssDisc;
366 shapes << QCPScatterStyle::ssSquare;
367 shapes << QCPScatterStyle::ssDiamond;
368 shapes << QCPScatterStyle::ssStar;
369 shapes << QCPScatterStyle::ssTriangle;
370 shapes << QCPScatterStyle::ssTriangleInverted;
371 shapes << QCPScatterStyle::ssCrossSquare;
372 shapes << QCPScatterStyle::ssPlusSquare;
373 shapes << QCPScatterStyle::ssCrossCircle;
374 shapes << QCPScatterStyle::ssPlusCircle;
375 shapes << QCPScatterStyle::ssPeace;