Гистограмма Qt с множеством рядов на одном графике

Я создаю линейку QChart.
У меня есть ранее неизвестное количество QBarSets (я знаю количество QBarSets во время выполнения — но может быть между 1-10) и, возможно, большое количество категорий (10-1000).

QVector<QBarSet*> barSets;
for(int i=0; i<n; ++i){ // n between 1-10
QBarSet *set = new QBarSet("");
for(int j=0; j<m; ++j){ // m between 1-1000
*set << someValue;
}
barSets.push_back(set);
}
QBarSeries* series = new QBarSeries();
for(int i=0; i<barSets.count(); ++i){
series->append(barSets.at(i));
}

все остальное почти так же, как описано Вот.

Моя проблема в том, что каждый бар становится очень маленьким. Я хотел бы построить каждую полосу с фиксированной шириной и, возможно, использовать горизонтальную полосу прокрутки для прокрутки категорий.

У кого-нибудь есть крошечный пример, как это сделать?

0

Решение

Оказывается, ответ очень прост.
Вы можете получить QBarCategoryAxis очень просто, используя

auto axis = qobject_cast<QBarCategoryAxis*>(chart->axisX());

а затем просто контролировать видимые категории по имени

auto categories = axis->categories();
QString min = categories.at(n);
QString max = categories.at(m);
axis->setMin(min);
axis->setMax(max);

Я использовал horizontalScrollBar_valueChanged сигнал на изменение минимального и максимального номеров категорий (n,m).

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector