qt - 为 QStackedBarSeries 设置 X 轴范围
问题描述
我正在使用以下代码创建垂直堆积图:
QStackedBarSeries* series = new QStackedBarSeries();
m_errorSet[0] = new QBarSet("");
m_errorSet[1] = new QBarSet("");
m_errorSet[0]->setColor(QColor("red"));
m_errorSet[1]->setColor(QColor(0x00FF00));
for (i = 0; i < MAX_ERROR_COLS; i++)
{
*m_errorSet[0] << 1;
*m_errorSet[1] << 4;
}
series->setBarWidth(1);
series->append(m_errorSet[0]);
series->append(m_errorSet[1]);
QChart* chart = new QChart();
chart->addSeries(series);
chart->setAnimationOptions(QChart::NoAnimation);
chart->legend()->setVisible(false);
QValueAxis* axisX = new QValueAxis();
// axisX->setMin(-4.0);
// axisX->setMax(0.0);
chart->addAxis(axisX, Qt::AlignBottom);
series->attachAxis(axisX);
这很好用,它创建了一组 80 个条形图,分布在 X 中的全部可用尺寸上。出于某种原因,X 轴标有 -0.5 .. 79.5 的范围。
我想要的是-4.0 .. 0.0 的 X 轴范围。但是一旦我启用
axisX->setMin(-4.0);
axisX->setMax(0.0);
在我上面的代码中,我只得到一个栏 - 其余的超出了有效范围。
所以我的问题是:如何告诉条形图始终位于 X 轴范围内?或者换句话说:我在哪里可以设置我的条的 X 轴值?
谢谢!
解决方案
这是顺序的问题:首先附加轴,然后附加系列,以便 QStackedBarSeries 知道如何定位条集:
QValueAxis* axisX = new QValueAxis();
axisX->setRange(-4.0,0.0);
QChart* chart = new QChart();
chart->addAxis(axisX, Qt::AlignBottom);
series->attachAxis(axisX);
chart->addSeries(series);
chart->setAnimationOptions(QChart::NoAnimation);
chart->legend()->setVisible(false);
推荐阅读
- python - Python在与另一个列表检查后获取一个列表的索引号
- javascript - 强制两个元素具有相同的宽度
- python - 来自迭代器的随机项?
- angular - Angular 双向绑定 [(ngModel)]
- r - 将带有月份缩写的字符串转换为 POSIXlt 的问题
- ios - 成功登录后导航未激活
- list - 哈斯克尔。查找列表中出现频率最高的数字,如果其中有几个,则返回其中的最大值
- c# - Unity - 粒子效果:如何使着色器在所需的时间播放
- java - 检索 ByteBuddy 生成的 Spring Bean 的问题
- python - 当我从命令行运行命令时,python doctest 没有运行测试