Creates the time series scatter plot example.
201 this->addWidget(std::make_unique<WText>(WString::tr(
"scatter plot")));
203 std::shared_ptr<WAbstractItemModel> model
204 = readCsvFile(WApplication::appRoot() +
"timeseries.csv",
this);
212 for (
int i = 0; i < model->rowCount(); ++i) {
213 WString s = asString(model->data(i, 0));
214 WDate d = WDate::fromString(s,
"dd/MM/yy");
215 model->setData(i, 0, d);
219 auto *w = this->addWidget(std::make_unique<WContainerWidget>());
220 auto *table = w->addWidget(std::make_unique<WTableView>());
222 table->setMargin(10, Side::Top | Side::Bottom);
223 table->setMargin(WLength::Auto, Side::Left | Side::Right);
225 table->setModel(model);
226 table->setSortingEnabled(
false);
227 table->setColumnResizeEnabled(
true);
228 table->setSelectionMode(SelectionMode::None);
229 table->setAlternatingRowColors(
true);
230 table->setColumnAlignment(0, AlignmentFlag::Center);
231 table->setHeaderAlignment(0, AlignmentFlag::Center);
232 table->setRowHeight(22);
236 if (WApplication::instance()->environment().ajax()) {
237 table->resize(800, 20 + 5*22);
238 table->setEditTriggers(EditTrigger::SingleClicked);
240 table->resize(800, 20 + 5*22 + 25);
241 table->setEditTriggers(EditTrigger::None);
244 std::shared_ptr<WItemDelegate> delegate
245 = std::make_shared<WItemDelegate>();
246 delegate->setTextFormat(
"%.1f");
247 table->setItemDelegate(delegate);
249 std::shared_ptr<WItemDelegate> delegateColumn
250 = std::make_shared<WItemDelegate>();
251 table->setItemDelegateForColumn(0, delegateColumn);
253 table->setColumnWidth(0, 80);
254 for (
int i = 1; i < model->columnCount(); ++i)
255 table->setColumnWidth(i, 90);
260 WCartesianChart *chart = this->addWidget(std::make_unique<WCartesianChart>());
263 chart->setModel(model);
264 chart->setXSeriesColumn(0);
265 chart->setLegendEnabled(
true);
266 chart->setZoomEnabled(
true);
267 chart->setPanEnabled(
true);
269 chart->setType(ChartType::Scatter);
270 chart->axis(Axis::X).setScale(AxisScale::Date);
273 chart->setAutoLayoutEnabled();
275 chart->setBackground(WColor(200,200,200));
279 for (
int i = 1; i < 3; ++i) {
280 std::unique_ptr<WDataSeries> s
281 = std::make_unique<WDataSeries>(i, SeriesType::Line);
282 s->setShadow(WShadow(3, 3, WColor(0, 0, 0, 127), 3));
283 chart->addSeries(std::move(s));
286 chart->resize(800, 400);
288 chart->setMargin(10, Side::Top | Side::Bottom);
289 chart->setMargin(WLength::Auto, Side::Left | Side::Right);
291 this->addWidget(std::make_unique<ChartConfig>(chart));