Creates the scatter plot example.
294 :
295 WContainerWidget()
296{
297 this->addWidget(std::make_unique<WText>(WString::tr("scatter plot 2")));
298
299 std::shared_ptr<WStandardItemModel> model
300 = std::make_shared<WStandardItemModel>(40, 2);
301 std::unique_ptr<NumericItem> prototype
302 = std::make_unique<NumericItem>();
303 model->setItemPrototype(std::move(prototype));
304 model->setHeaderData(0, WString("X"));
305 model->setHeaderData(1, WString("Y = sin(X)"));
306
307 for (unsigned i = 0; i < 40; ++i) {
308 double x = (static_cast<double>(i) - 20) / 4;
309
310 model->setData(i, 0, x);
311 model->setData(i, 1, sin(x));
312 }
313
314
315
316
317 WCartesianChart *chart = this->addWidget(std::make_unique<WCartesianChart>());
318 chart->setModel(model);
319 chart->setXSeriesColumn(0);
320 chart->setLegendEnabled(true);
321 chart->setZoomEnabled(true);
322 chart->setPanEnabled(true);
323 chart->setCrosshairEnabled(true);
324
325 chart->setBackground(WColor(200,200,200));
326
327 chart->setType(ChartType::Scatter);
328
329
330
331 chart->axis(Axis::X).setLocation(AxisValue::Zero);
332 chart->axis(Axis::Y).setLocation(AxisValue::Zero);
333
334
335 chart->setAutoLayoutEnabled();
336
337
338 std::unique_ptr<WDataSeries> s
339 = std::make_unique<WDataSeries>(1, SeriesType::Curve);
340 s->setShadow(WShadow(3, 3, WColor(0, 0, 0, 127), 3));
341 chart->addSeries(std::move(s));
342
343 chart->resize(800, 300);
344
345 chart->setMargin(10, Side::Top | Side::Bottom);
346 chart->setMargin(WLength::Auto, Side::Left | Side::Right);
347
348 ChartConfig *config = this->addWidget(std::make_unique<ChartConfig>(chart));
350}
A class that allows configuration of a cartesian chart.
void setValueFill(Wt::Chart::FillRangeType fill)