Beispiel #1
0
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 );
        }
    }
}
Beispiel #2
0
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;
}
Beispiel #3
0
Histogram::Histogram(const QString &title, const QColor& symbolColor) :
    QwtPlotHistogram(title)
{
  setStyle(QwtPlotHistogram::Columns);

  QColor color = symbolColor;

  setBrush(QBrush(color));
  setPen(QPen(color.darker()));

  QwtColumnSymbol *symbol = new QwtColumnSymbol(QwtColumnSymbol::NoSymbol);
  symbol->setPalette(QPalette(color));
  setSymbol(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;
    }
Beispiel #5
0
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);
}
Beispiel #7
0
    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);

}
Beispiel #9
0
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 );
}
Beispiel #10
0
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();
}