void TVPlot::setMode( int mode ) { QwtPlotItemList items = itemList( QwtPlotItem::Rtti_PlotHistogram ); for ( int i = 0; i < items.size(); i++ ) { QwtPlotHistogram *histogram = static_cast<QwtPlotHistogram *>( items[i] ); if ( mode < 3 ) { histogram->setStyle( static_cast<QwtPlotHistogram::HistogramStyle>( mode ) ); histogram->setSymbol( NULL ); QPen pen( Qt::black, 0 ); if ( mode == QwtPlotHistogram::Lines ) pen.setBrush( histogram->brush() ); histogram->setPen( pen ); } else { histogram->setStyle( QwtPlotHistogram::Columns ); QwtColumnSymbol *symbol = new QwtColumnSymbol( QwtColumnSymbol::Box ); symbol->setFrameStyle( QwtColumnSymbol::Raised ); symbol->setLineWidth( 2 ); symbol->setPalette( QPalette( histogram->brush().color() ) ); histogram->setSymbol( symbol ); } } }
QwtColumnSymbol * BarPlot::specialSymbol (int index, QPointF const &) const { QwtColumnSymbol * symbol = new QwtColumnSymbol(QwtColumnSymbol::Box); symbol->setLineWidth(0); symbol->setFrameStyle(QwtColumnSymbol::Plain); QColor c(Qt::white); if (index >= 0 && index < m_colors.size()) c = m_colors[index]; symbol->setPalette(c); return symbol; }
virtual QwtColumnSymbol *specialSymbol( int index, const QPointF& ) const { QwtColumnSymbol *symbol = new QwtColumnSymbol( QwtColumnSymbol::Box ); symbol->setLineWidth( 2 ); symbol->setFrameStyle( QwtColumnSymbol::Raised ); QColor c( Qt::white ); if ( index >= 0 && index < m_colors.size() ) c = m_colors[ index ]; symbol->setPalette( c ); return symbol; }
void Histogram::setColor(const QColor &symbolColor) { QColor color = symbolColor; color.setAlpha(180); setPen(QPen(Qt::black)); setBrush(QBrush(color)); QwtColumnSymbol *symbol = new QwtColumnSymbol(QwtColumnSymbol::NoStyle); symbol->setFrameStyle(QwtColumnSymbol::NoFrame); symbol->setLineWidth(0); symbol->setPalette(QPalette(color)); setSymbol(symbol); }
GraphicalHistogram::GraphicalHistogram(const QString& title, const QColor& color): QwtPlotHistogram(title) { setStyle(QwtPlotHistogram::Outline); QColor c = color; c.setAlpha(48); setBrush(QBrush(c)); setPen(QPen(color)); QwtColumnSymbol* symbol = new QwtColumnSymbol(QwtColumnSymbol::Box); symbol->setFrameStyle(QwtColumnSymbol::Raised); symbol->setLineWidth(2); symbol->setPalette(QPalette(color)); setSymbol(symbol); }
virtual QwtColumnSymbol *specialSymbol( int index, const QPointF& ) const { // we want to have individual colors for each bar QwtColumnSymbol *symbol = new QwtColumnSymbol( QwtColumnSymbol::Box ); symbol->setLineWidth( 2 ); symbol->setFrameStyle( QwtColumnSymbol::Raised ); QColor c( Qt::white ); if ( index >= 0 && index < d_colors.size() ) c = d_colors[ index ]; symbol->setPalette( c ); return symbol; }
void ICResultChart::populate() { QwtPlotGrid *grid = new QwtPlotGrid; grid->enableX( false ); grid->enableY( true ); grid->enableXMin( false ); grid->enableYMin( false ); grid->setMajorPen( Qt::black, 0, Qt::DotLine ); grid->attach( this ); QColor color = Qt::blue; color.setAlpha(180); QwtColumnSymbol *symbol = new QwtColumnSymbol(QwtColumnSymbol::Box); symbol->setLineWidth(2); symbol->setFrameStyle(QwtColumnSymbol::Raised); symbol->setPalette(QPalette(color)); d_barChartItem->setSymbol(symbol); QVector<double> samples; QMap<QString, int>::const_iterator i = result.constBegin(); while (i != result.constEnd()) { samples.append(i.value()); ++i; } d_barChartItem->setSamples(samples); double k = (0.0 + SPACING_RATIO) / MARGIN_RATIO; double m = (0.0 + WINDOW_WIDTH - BAR_WIDTH) / (2 + k * (result.size() - 1)); int margin = static_cast<int>(m); int spacing = static_cast<int>(m * k); if (spacing < MIN_SPACING) spacing = MIN_SPACING; if (margin < MIN_MARGIN) margin = MIN_MARGIN; d_barChartItem->setSpacing(spacing); d_barChartItem->setMargin(100); //d_barChartItem->setLayoutPolicy(QwtPlotAbstractBarChart::FixedSampleSize); //d_barChartItem->setLayoutHint(BAR_WIDTH); }
void BarChart::populate() { static const char *colors[] = { "DarkOrchid", "SteelBlue", "Gold" }; const int numSamples = 5; const int numBars = sizeof( colors ) / sizeof( colors[0] ); QList<QwtText> titles; for ( int i = 0; i < numBars; i++ ) { QString title("Bar %1"); titles += title.arg( i ); } d_barChartItem->setBarTitles( titles ); d_barChartItem->setLegendIconSize( QSize( 10, 14 ) ); for ( int i = 0; i < numBars; i++ ) { QwtColumnSymbol *symbol = new QwtColumnSymbol( QwtColumnSymbol::Box ); symbol->setLineWidth( 2 ); symbol->setFrameStyle( QwtColumnSymbol::Raised ); symbol->setPalette( QPalette( colors[i] ) ); d_barChartItem->setSymbol( i, symbol ); } QVector< QVector<double> > series; for ( int i = 0; i < numSamples; i++ ) { QVector<double> values; for ( int j = 0; j < numBars; j++ ) values += ( 2 + qrand() % 8 ); series += values; } d_barChartItem->setSamples( series ); }
void TestResultPlotter::plot(const QStringList& labels, const QList<double>& confidence, const QList<double>& accuracy, QwtPlot *plot, QwtBarsItem *barGraph, QwtLegend *barGraphLegend) { int count = labels.count(); Q_ASSERT(count == confidence.count()); Q_ASSERT(count == accuracy.count()); #if QWT_VERSION < 0x060100 double *accuracyA = new double[count]; double *confidenceA = new double[count]; for (int i=0; i < count; i++) { confidenceA[i] = confidence[i]; accuracyA[i] = accuracy[i]; } QwtSeriesData<double> *accSeries = new CArrayData<double>( accuracyA, count ); barGraph->addSerie( i18n("Accuracy"), *accSeries, QBrush( Qt::blue ), QPen( QColor( Qt::darkBlue ), 1 ) ); QwtSeriesData<double> *confSeries = new CArrayData<double>( confidenceA, count ); barGraph->addSerie( i18n("Confidence"), *confSeries, QBrush( Qt::green ), QPen( QColor( Qt::darkGreen ), 1 ) ); barGraph->updateLegend(barGraphLegend); barGraph->setType(QwtBarsItem::SideBySide); #else static const char *colors[] = { "Blue", "Red" }; const int numBars = 2; // accuracy, confidence QList<QwtText> barTitles; barTitles << i18n("Accuracy"); barTitles << i18n("Confidence"); barGraph->setBarTitles(barTitles); barGraph->setLegendIconSize(QSize(10, 14)); for ( int i = 0; i < numBars; i++ ) { QwtColumnSymbol *symbol = new QwtColumnSymbol(QwtColumnSymbol::Box); symbol->setLineWidth(2); symbol->setFrameStyle(QwtColumnSymbol::Raised); symbol->setPalette(QPalette(colors[i])); barGraph->setSymbol(i, symbol); } QVector<QVector<double> > series; for (int i = 0; i < count; i++) { QVector<double> values; values << accuracy[i]; values << confidence[i]; series << values; } barGraph->setSamples(series); #endif barGraph->attach(plot); plot->setAxisScaleDraw(QwtPlot::xBottom, new QwtScaleDrawLabels( labels, 1 )); // scale: #if QWT_VERSION < 0x60100 plot->setAxisMaxMinor(QwtPlot::xBottom, 0); plot->setAxisMaxMajor(QwtPlot::xBottom, count+1); #else QwtScaleDraw *scaleDraw1 = new QwtScaleDrawLabels( labels, 0 ); scaleDraw1->enableComponent(QwtScaleDraw::Labels, true); scaleDraw1->enableComponent(QwtScaleDraw::Backbone, false); scaleDraw1->enableComponent(QwtScaleDraw::Ticks, false); plot->setAxisScaleDraw(QwtPlot::xBottom, scaleDraw1); QwtScaleDraw *scaleDraw2 = plot->axisScaleDraw(QwtPlot::yLeft); scaleDraw2->enableComponent(QwtScaleDraw::Backbone, true); scaleDraw2->enableComponent(QwtScaleDraw::Labels, true); scaleDraw2->enableComponent(QwtScaleDraw::Ticks, true); plot->plotLayout()->setAlignCanvasToScale(QwtPlot::xBottom, true); plot->plotLayout()->setAlignCanvasToScale(QwtPlot::yLeft, false); #endif plot->replot(); }