가로 막대 차트 만들기
참고: 이 내용은 ‘위젯이 포함된 차트 갤러리’ 예제의 일부입니다.
QHorizontalBarChart는 데이터를 세트별로 구분하여 별도의 막대로 표시하며, 이 막대들은 범주별로 그룹화됩니다. QHorizontalBarChart는 막대가 차트에 수평으로 그려진다는 점을 제외하면 QBarChart와 똑같이 작동합니다.

막대 집합은 모든 막대 차트에서 동일한 방식으로 사용됩니다. 다양한 막대 차트 간의 차이점을 명확히 보여주기 위해, 모든 예제에서 동일한 데이터를 사용합니다. 막대 차트가 시각화하는 데이터는 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;시리즈를 생성하고 바 세트를 시리즈에 추가합니다. 시리즈는 바 세트의 소유권을 갖습니다. 시리즈는 세트의 데이터를 범주별로 그룹화합니다. 각 세트의 첫 번째 값들은 첫 번째 범주에, 두 번째 값들은 두 번째 범주에 그룹화되며, 이와 같은 방식으로 이어집니다.
auto series = new QHorizontalBarSeries;
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 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);
axisX->applyNiceNumbers();또한 범례도 표시하고자 합니다. 이를 위해 차트에서 범례 포인터를 가져와 표시되도록 설정합니다. 또한 정렬을 ` Qt::AlignBottom`로 설정하여 범례를 차트 하단에 배치합니다.
chart->legend()->setVisible(true);
chart->legend()->setAlignment(Qt::AlignBottom);마지막으로 차트를 뷰에 추가합니다. 또한 chartView에 대해 앤티앨리어싱을 활성화합니다.
createDefaultChartView(chart);이제 차트를 표시할 준비가 되었습니다.
© 2026 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.