横パーセント棒グラフの作成

注: これは、ウィジェット・ギャラリーのチャート例の一部です。

水平パーセント棒グラフは、あるセットのデータを、カテゴリごとの全セットのパーセンテージとして表示します。

水平パーセント棒グラフの作成は、通常の棒グラフの作成と同じですが、水平パーセント棒グラフでは、QBarSeries の代わりにQHorizontalPercentBarSeries api を使用します。また、棒グラフでは、Y軸の番号付けを見やすくするために、素敵な数値アルゴリズムを使用しました。パーセント棒グラフでは、Y軸の最大値は常に100なので、その必要はありません。

バーセットは、すべてのバーチャートで同じように使用される。様々なバーチャートの違いを説明するために、同じデータを例に挙げて説明する。棒グラフが可視化するデータは、QBarSet インスタンスによって定義される。ここでは、セットを作成し、それにデータを追加する。データは << 演算子で追加される。あるいは、append メソッドを使うこともできる。

auto set0 = new QBarSet("Jane");
auto set1 = new QBarSet("John");
auto set2 = new QBarSet("Axel");
auto set3 = new QBarSet("Mary");
auto set4 = new QBarSet("Samantha");

*set0 << 1 << 2 << 3 << 4 << 5 << 6;
*set1 << 5 << 0 << 0 << 4 << 0 << 7;
*set2 << 3 << 5 << 8 << 13 << 8 << 5;
*set3 << 5 << 6 << 7 << 3 << 4 << 5;
*set4 << 9 << 7 << 5 << 3 << 1 << 2;

系列を作成し、そこにバーセットを追加します。系列はバーセットの所有権を持つ。系列は、データをセットからカテゴリにグループ化します。各セットの最初の値は最初のカテゴリーに、2番目の値は2番目のカテゴリーにまとめられます。

auto series = new QHorizontalPercentBarSeries;
series->append(set0);
series->append(set1);
series->append(set2);
series->append(set3);
series->append(set4);

ここでは、チャート・オブジェクトを作成し、そこに系列を追加します。setTitleでチャートのタイトルを設定し、setAnimationOptions(QChart::SeriesAnimations)を呼び出してシリーズのアニメーションをオンにします。

auto chart = new QChart;
chart->addSeries(series);
chart->setTitle("Simple Horizontal Percent Bar Chart");
chart->setAnimationOptions(QChart::SeriesAnimations);

カテゴリーを軸に表示するには、まずQBarCategoryAxis 。ここでは、カテゴリのリストを持つカテゴリ軸を作成し、それを左側のチャートに追加して、Y軸として機能させます。チャートは軸の所有権を持ちます。X軸には、値軸を使用し、下に揃えます。

QStringList categories {"Jan", "Feb", "Mar", "Apr", "May", "Jun"};
auto axisY = new QBarCategoryAxis;
axisY->append(categories);
chart->addAxis(axisY, Qt::AlignLeft);
series->attachAxis(axisY);
auto axisX = new QValueAxis;
chart->addAxis(axisX, Qt::AlignBottom);
series->attachAxis(axisX);

凡例も表示したい。そのためには、チャートから凡例ポインタを取得して、それを可視に設定します。また、アライメントをQt::AlignBottom に設定して、凡例をチャートの底に配置します。

chart->legend()->setVisible(true);
chart->legend()->setAlignment(Qt::AlignBottom);

最後に、チャートをビューに追加します。

createDefaultChartView(chart);

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.