【问题标题】:How to hide some of the categories in QBarCategoryAxis in Qt如何在Qt中隐藏QBarCategoryAxis中的一些类别
【发布时间】:2018-05-20 10:51:04
【问题描述】:

创建图表时,我没有找到隐藏QBarCategoryAxis 中某些类别的方法。如果我没有为轴指定类别,默认情况下类别将是从 1 到 QBarSet 大小。如果我指定类别,我怎么能只显示轴中的一些类别。例如:QBarCategoryAxis中如何只显示第一个和最后一个类别以及中间的类别?

编辑:
目前我得到的是这样的:

我有一个QBarSet,它有 6 个元素。而且我没有设置类别文本,所以默认情况下,这些类别文本是从 1 到 6。我想要显示一些类别文本,比如只显示 1、3、6 和其余文本(2 , 4, 5) 被隐藏。

我为什么要这样做?
因为当QBarSet元素比较多的时候,当我自己指定类别文本时,通常需要最大化窗口,这样才能看到axisX中显示的所有类别文本。但我只希望图表具有固定大小,因此对于文本,我只希望显示其中的一部分。
顺便说一句,如果一个条形集有很多元素,这将是看起来的样子,并且在我最大化窗口之前,下面的文本不会完全显示。
编辑 2:
这就是我想要的我想要的图表看起来像:

如您所见,在 x 轴下方,它只有 5 个文本。

【问题讨论】:

  • 您可以更好地解释自己,也许可以使用您当前获得的图像以及您想要的图像。你想隐藏一些标签还是你也想隐藏QBarSet?
  • @eyllanesc 我编辑了我的问题。希望我能清楚地解释自己。
  • 正如我在之前的评论中所说,您可以显示您想要获得的编辑图像。
  • @eyllanesc 好的,我再次编辑它以显示我想要的内容。
  • 你想显示日期还是只是一个简单的例子? :D

标签: c++ qt qt5 qchart


【解决方案1】:

以下解决方案仅适用于您希望在 X 轴上显示日期的情况。诀窍是使用QDateTimeAxis,但要做到这一点,请创建一个虚构的QLineSeries,它将日期和日期作为值以及其他任何内容,然后它将隐藏。

#include <QApplication>
#include <QtCharts>
QT_CHARTS_USE_NAMESPACE

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QChartView w;

    QBarSet *set0 = new QBarSet("bar1");

    *set0 << 1 << 4 << 3 << 7 << 2 << 5 << 1 << 3 << 3 << 2 << 1 << 6 << 7 << 5;

    QDateTime from = QDateTime::currentDateTime();
    QLineSeries *ls = new QLineSeries; //fictitious series

    for(int i=0; i < set0->count(); i++){
        *ls << QPointF(from.addDays(i+1).toMSecsSinceEpoch(), 0);
    }

    QBarSeries *series = new QBarSeries;
    series->append(set0);

    QDateTimeAxis *axisX = new QDateTimeAxis;
    axisX->setFormat("MMMM dd");
    axisX->setGridLineVisible(false);
    QValueAxis *axisY = new QValueAxis;

    QChart *chart= new QChart;
    w.setChart(chart);
    chart->addSeries(series);
    chart->addSeries(ls);
    chart->setAxisX(axisX, ls);
    chart->setAxisY(axisY, series);
    ls->hide(); // hide serie

    w.show();

    return a.exec();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-04
    相关资源
    最近更新 更多