国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Qwt QwtScaleDraw自定義坐標(biāo)軸

這篇具有很好參考價(jià)值的文章主要介紹了Qwt QwtScaleDraw自定義坐標(biāo)軸。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1.概述

QwtScaleDraw 是 Qt 繪圖庫(kù) Qwt 中的一個(gè)類(lèi),用于繪制坐標(biāo)軸刻度線和刻度標(biāo)簽。它提供了一些方法和屬性來(lái)設(shè)置刻度線和標(biāo)簽的樣式、布局和對(duì)齊方式。

以下是類(lèi)繼承關(guān)系:

Qwt QwtScaleDraw自定義坐標(biāo)軸,Qwt,qt,qwt,QwtPlot,QwtScaleDraw

2.常用方法

標(biāo)簽相關(guān)方法:

  • setLabelRotation(double angle):設(shè)置標(biāo)簽旋轉(zhuǎn)角度。
  • setLabelAlignment(Alignment alignment):設(shè)置標(biāo)簽對(duì)齊方式。

刻度線相關(guān)設(shè)置:

  • void?setTickLength (QwtScaleDiv::TickType, double length):設(shè)置刻度線長(zhǎng)度

自定義標(biāo)簽,重寫(xiě)label方法

  • virtual QwtText?label (double) const

3.示例

自定義下x軸的坐標(biāo)軸。

Qwt QwtScaleDraw自定義坐標(biāo)軸,Qwt,qt,qwt,QwtPlot,QwtScaleDraw

#ifndef BARCHARTSINGLEWIDGET_H
#define BARCHARTSINGLEWIDGET_H

#include <QWidget>

namespace Ui {
class BarChartSingleWidget;
}

class BarChartSingleWidget : public QWidget
{
    Q_OBJECT

public:
    explicit BarChartSingleWidget(QWidget *parent = 0);
    ~BarChartSingleWidget();

private:
    Ui::BarChartSingleWidget *ui;

    QStringList m_distros;
};

#endif // BARCHARTSINGLEWIDGET_H



#include "BarChartSingleWidget.h"
#include "ui_BarChartSingleWidget.h"
#include "qwt_plot.h"
#include "qwt_plot_curve.h"
#include "qwt_text.h"
#include "qwt_legend.h"
#include "qwt_symbol.h"
#include "qwt_plot_marker.h"
#include "qwt_plot_grid.h"
#include "qwt_scale_div.h"
#include "qwt_plot_canvas.h"
#include "qwt_plot_legenditem.h"
#include "qwt_math.h"
#include "qwt_plot_layout.h"
#include "qwt_plot_barchart.h"
#include "qwt_scale_draw.h"
#include "qwt_column_symbol.h"
#include "qwt_plot_renderer.h"

//自定義坐標(biāo)軸
class ScaleDraw : public QwtScaleDraw
{
  public:
    ScaleDraw( Qt::Orientation orientation, const QStringList& labels )
        : m_labels( labels )
    {
        //設(shè)置tick長(zhǎng)度
        setTickLength( QwtScaleDiv::MinorTick, 0 );
        setTickLength( QwtScaleDiv::MediumTick, 0 );
        setTickLength( QwtScaleDiv::MajorTick, 2 );

        enableComponent( QwtScaleDraw::Backbone, false );

        //設(shè)置方向
        if ( orientation == Qt::Vertical )
        {
            setLabelRotation( -60.0 );
        }
        else
        {
            setLabelRotation( -20.0 );
        }

        //設(shè)置label對(duì)齊方式
        setLabelAlignment( Qt::AlignLeft | Qt::AlignVCenter );
    }

    //重寫(xiě)label方法
    virtual QwtText label( double value ) const QWT_OVERRIDE
    {
        QwtText lbl;

        const int index = qRound( value );
        if ( index >= 0 && index < m_labels.size() )
        {
            lbl = m_labels[ index ];
        }

        return lbl;
    }

  private:
    const QStringList m_labels;
};

//自定義ChartItem類(lèi),實(shí)現(xiàn)specialSymbol和barTitle方法
class ChartItem : public QwtPlotBarChart
{
  public:
    ChartItem()
        : QwtPlotBarChart( "Page Hits" )
    {
        setLegendMode( QwtPlotBarChart::LegendBarTitles );
        setLegendIconSize( QSize( 10, 14 ) );
        setLayoutPolicy( AutoAdjustSamples );
        setLayoutHint( 4.0 ); // minimum width for a single bar

        setSpacing( 10 ); // spacing between bars
    }

    void addDistro( const QString& distro, const QColor& color )
    {
        m_colors += color;
        m_distros += distro;
        itemChanged();
    }

    virtual QwtColumnSymbol* specialSymbol(
        int index, const QPointF& ) const QWT_OVERRIDE
    {
        // we want to have individual colors for each bar
        //新建一個(gè)標(biāo)記
        QwtColumnSymbol* symbol = new QwtColumnSymbol( QwtColumnSymbol::Box );
        symbol->setLineWidth( 2 );  //設(shè)置線寬
        symbol->setFrameStyle( QwtColumnSymbol::Raised );//設(shè)置邊框風(fēng)格

        QColor c( Qt::white );
        if ( index >= 0 && index < m_colors.size() )
            c = m_colors[ index ];

        //設(shè)置顏色
        symbol->setPalette( c );

        return symbol;
    }

    //設(shè)置bar的標(biāo)題
    virtual QwtText barTitle( int sampleIndex ) const QWT_OVERRIDE
    {
        QwtText title;
        if ( sampleIndex >= 0 && sampleIndex < m_distros.size() )
            title = m_distros[ sampleIndex ];

        return title;
    }

  private:
    QList< QColor > m_colors;       //每個(gè)bar的顏色
    QList< QString > m_distros;     //每個(gè)bar的標(biāo)題
};

static QwtPlot *g_plot = nullptr;

BarChartSingleWidget::BarChartSingleWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::BarChartSingleWidget)
{
    ui->setupUi(this);

    const struct
    {
        const char* distro;
        const int hits;
        QColor color;

    } pageHits[] =
    {
        { "一年級(jí)", 1114, QColor( "DodgerBlue" ) },
        { "二年級(jí)", 1373, QColor( "#d70751" ) },
        { "三年級(jí)", 1638, QColor( "SteelBlue" ) },
        { "四年級(jí)", 1395, QColor( "Indigo" ) },
        { "五年級(jí)", 3874, QColor( 183, 255, 183 ) },
        { "六年級(jí)", 1532, QColor( 115, 186, 37 ) },
        { "七年級(jí)", 1059, QColor( "LightSkyBlue" ) },
        { "八年級(jí)", 2391, QColor( "FireBrick" ) }
    };

    //設(shè)置plot背景色
    g_plot = new QwtPlot(QwtText("XX學(xué)校學(xué)生人數(shù)統(tǒng)計(jì)"),this);
    g_plot->setAutoFillBackground( true );
    g_plot->setPalette( QColor( "Linen" ) );

    //設(shè)置畫(huà)布
    QwtPlotCanvas* canvas = new QwtPlotCanvas();
    canvas->setLineWidth( 2 );
    canvas->setFrameStyle( QFrame::Box | QFrame::Sunken );
    canvas->setBorderRadius( 10 );

    //設(shè)置畫(huà)布的背景色
    QPalette canvasPalette( QColor( "Plum" ) );
    canvasPalette.setColor( QPalette::WindowText, QColor( "Indigo" ) );
    canvas->setPalette( canvasPalette );

    g_plot->setCanvas( canvas );

    // 創(chuàng)建柱狀圖
    ChartItem* chartItem = new ChartItem();

    //設(shè)置條形圖數(shù)據(jù)
    QVector< double > samples;

    for ( uint i = 0; i < sizeof( pageHits ) / sizeof( pageHits[ 0 ] ); i++ )
    {
        m_distros += pageHits[ i ].distro;
        samples += pageHits[ i ].hits;

        chartItem->addDistro( pageHits[ i ].distro, pageHits[ i ].color );
    }

    chartItem->setSamples( samples );
    chartItem->attach( g_plot );

    //設(shè)置坐標(biāo)軸
    //設(shè)置自定義的坐標(biāo)軸
    g_plot->setAxisTitle( QwtAxis::XBottom, "年級(jí)" );
    g_plot->setAxisMaxMinor( QwtAxis::XBottom, 3 );
    g_plot->setAxisScaleDraw( QwtAxis::XBottom, new ScaleDraw( Qt::Vertical, m_distros ) );

    g_plot->setAxisTitle( QwtAxis::YLeft, "人數(shù)" );
    g_plot->setAxisMaxMinor( QwtAxis::YLeft, 3 );

    //設(shè)置自定義的坐標(biāo)軸
    QwtScaleDraw* scaleDraw = new QwtScaleDraw();
    scaleDraw->setTickLength( QwtScaleDiv::MediumTick, 4 );
    g_plot->setAxisScaleDraw( QwtAxis::YLeft, scaleDraw );

    g_plot->plotLayout()->setCanvasMargin( 0 );

    //插入圖例
    g_plot->insertLegend( new QwtLegend() );

    g_plot->replot();

    // 顯示繪圖對(duì)象
    ui->verticalLayout->addWidget(g_plot);
}

BarChartSingleWidget::~BarChartSingleWidget()
{
    delete ui;
}

4.相關(guān)參考

Qwt QwtLegend和QwtPlotLegendItem圖例類(lèi)詳解-CSDN博客

Qwt QwtPlot類(lèi)詳解-CSDN博客

Qwt QwtPlotBarChart自定義條形統(tǒng)計(jì)圖-CSDN博客?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-727821.html

到了這里,關(guān)于Qwt QwtScaleDraw自定義坐標(biāo)軸的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python Axes3D自制坐標(biāo)軸(沒(méi)辦法俺不知道咋移動(dòng)坐標(biāo)軸,但是不移動(dòng)坐標(biāo)軸畫(huà)圖太難看了)

    Python Axes3D自制坐標(biāo)軸(沒(méi)辦法俺不知道咋移動(dòng)坐標(biāo)軸,但是不移動(dòng)坐標(biāo)軸畫(huà)圖太難看了)

    ???因?yàn)楹懿磺捎肁xes3D自帶的坐標(biāo)軸畫(huà)出來(lái)圖有點(diǎn)丑,首先ticklabels離坐標(biāo)軸有點(diǎn)遠(yuǎn)。其次想正負(fù)值都能顯示。就在想能不能把軸往上移一下,同時(shí)拉近ticklabels和坐標(biāo)軸的距離。 ???博主主要是發(fā)現(xiàn)了用ax.axis(‘off’)或者ax1.set_axis_off()可以達(dá)到把坐標(biāo)軸全部關(guān)掉的效果,如下

    2024年02月15日
    瀏覽(26)
  • 《Qt開(kāi)發(fā)》基于QWT的曲線圖繪制

    《Qt開(kāi)發(fā)》基于QWT的曲線圖繪制

    Qwt繪制曲線圖 該示例包含以下功能: 1.使用qwt繪制曲線圖 2.通過(guò)鼠標(biāo)實(shí)現(xiàn)繪圖的縮放,只縮放x軸或只縮放y軸或同時(shí)縮放 3.設(shè)置繪圖區(qū)域和繪圖區(qū)域外的背景顏色 4.通過(guò)點(diǎn)擊圖例實(shí)現(xiàn)曲線的顯示和隱藏 QwtPlot繪圖部件 頭文件 #include qwt_plot.h 枚舉類(lèi)型 enum Axis { yLeft , yRight , xBott

    2023年04月08日
    瀏覽(23)
  • matlab設(shè)置坐標(biāo)軸的坐標(biāo)顯示范圍和刻度

    matlab設(shè)置坐標(biāo)軸的坐標(biāo)顯示范圍和刻度

    所用代碼: 逐個(gè)演示代碼結(jié)果: ? 參考資料: matlab設(shè)置x軸和y軸的坐標(biāo)顯示范圍和刻度_matalb的極坐標(biāo)圖如何將坐標(biāo)標(biāo)出來(lái)_phymat.nico的博客-CSDN博客

    2024年02月09日
    瀏覽(30)
  • MATLAB: 調(diào)整坐標(biāo)軸范圍

    MATLAB: 調(diào)整坐標(biāo)軸范圍 在MATLAB中,可以使用一些方法來(lái)設(shè)置坐標(biāo)軸的范圍。通過(guò)調(diào)整坐標(biāo)軸范圍,可以改變繪圖的可視化效果,并突出顯示感興趣的數(shù)據(jù)。本文將介紹一些常用的方法和示例代碼。 使用axis函數(shù)設(shè)置坐標(biāo)軸范圍 axis函數(shù)是MATLAB中常用的設(shè)置坐標(biāo)軸的函數(shù)之一。它

    2024年02月06日
    瀏覽(21)
  • 第六章、坐標(biāo)軸的定制

    第六章、坐標(biāo)軸的定制

    6.1、坐標(biāo)軸概述 在繪制圖表過(guò)程中,matplotlib會(huì)根據(jù)所繪圖表的類(lèi)型決定是否使用坐標(biāo)系,或者顯示哪種類(lèi)型的坐標(biāo)系。 坐標(biāo)軸的結(jié)構(gòu)相同,主要包括軸脊、刻度,其中刻度又可以細(xì)分為刻度線和刻度標(biāo)簽,刻度線又可以細(xì)分為主刻線和次刻線。坐標(biāo)軸的各部分均是matplotli

    2024年02月06日
    瀏覽(27)
  • 采用VMD按照某一坐標(biāo)軸旋轉(zhuǎn)坐標(biāo)結(jié)構(gòu)

    采用VMD按照某一坐標(biāo)軸旋轉(zhuǎn)坐標(biāo)結(jié)構(gòu)

    關(guān)注 M r . m a t e r i a l ? , color{Violet} rm Mr.material , Mr.material ? , 更 color{red}{更} 更 多 color{blue}{多} 多 精 color{orange}{精} 精 彩 color{green}{彩} 彩 ! 主要專(zhuān)欄內(nèi)容包括: ? ?《LAMMPS小技巧》:  ̄ textbf{ underline{dag《LAMMPS小技巧》:}} ? ? 《 LAMMPS 小技巧》: ? 主要介紹采

    2024年02月13日
    瀏覽(23)
  • 3Ds Max坐標(biāo)軸切換,使用物體的世界坐標(biāo)和本地坐標(biāo)之間切換

    3Ds Max坐標(biāo)軸切換,使用物體的世界坐標(biāo)和本地坐標(biāo)之間切換

    官方文檔 官方文檔 使用“參考坐標(biāo)系”列表,可以指定變換(移動(dòng)、旋轉(zhuǎn)和縮放)所用的坐標(biāo)系。選項(xiàng)包括“視圖”、“屏幕”、“世界”、“父對(duì)象”、“局部”、“萬(wàn)向”,“柵格”、“工作”和“拾取”。 主工具欄 “參考坐標(biāo)系”下拉菜單 在“屏幕”坐標(biāo)系中,所

    2024年02月12日
    瀏覽(30)
  • Matlab隱藏坐標(biāo)軸/數(shù)字/刻度線

    Matlab隱藏坐標(biāo)軸/數(shù)字/刻度線

    目錄 一、隱藏坐標(biāo)軸的數(shù)字 二、隱藏坐標(biāo)軸的刻度 三、隱藏坐標(biāo)軸 四、隱藏坐標(biāo)區(qū) 五、修改坐標(biāo)區(qū)背景顏色 ?六、修改圖片背景顏色 一、隱藏坐標(biāo)軸的數(shù)字 以X軸為例,在畫(huà)圖的代碼后面增加以下設(shè)置: 二、隱藏坐標(biāo)軸的刻度 三、隱藏坐標(biāo)軸 四、隱藏坐標(biāo)區(qū) 或者 ? 五、

    2024年01月24日
    瀏覽(25)
  • echarts坐標(biāo)軸、軸線、刻度、刻度標(biāo)簽

    echarts坐標(biāo)軸、軸線、刻度、刻度標(biāo)簽

    x 軸和 y 軸都由 軸線、刻度、刻度標(biāo)簽、軸標(biāo)題 四個(gè)部分組成。部分圖表中還會(huì)有網(wǎng)格線來(lái)幫助查看和計(jì)算數(shù)據(jù) 普通的二維數(shù)據(jù)坐標(biāo)系都有x軸和y軸,通常情況下,x軸顯示在圖表底部,y軸顯示在左側(cè),一般配置如下: 當(dāng) x 軸(水平坐標(biāo)軸)跨度很大,可以采用 區(qū)域縮放方

    2024年04月14日
    瀏覽(24)
  • Matlab中如何調(diào)整坐標(biāo)軸刻度

    Matlab中如何調(diào)整坐標(biāo)軸刻度 在Matlab中,我們經(jīng)常需要對(duì)繪圖中的坐標(biāo)軸刻度進(jìn)行調(diào)整,以便更好地展示數(shù)據(jù)。本文將介紹如何使用Matlab來(lái)調(diào)整坐標(biāo)軸刻度,并提供相應(yīng)的源代碼示例供參考。 Matlab提供了多種方法來(lái)調(diào)整坐標(biāo)軸刻度。下面我們將介紹其中的兩種常用方法:手動(dòng)

    2024年02月05日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包