ChartView没有显示BarSets数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ChartView没有显示BarSets数据相关的知识,希望对你有一定的参考价值。

在qml中,我创建了一个ChartView:

ChartView {
        id : mChart
        title: "Bash History Graph"
        anchors.fill: parent
        legend.alignment: Qt.AlignBottom
        antialiasing: true
        animationOptions: ChartView.SeriesAnimations
}

并在Component.onCompleted信号:

Component.onCompleted: {
            var mHorSeries = Qt.createQmlObject('import QtCharts 2.2; HorizontalBarSeries {}', mChart);
            var categoryAxisY=Qt.createQmlObject('import QtCharts 2.2;BarCategoryAxis {}',mChart);
            var mBarSet = Qt.createQmlObject('import QtCharts 2.2; BarSet{}',mHorSeries);

            categoryAxisY.categories = ["2007", "2008", "2009", "2010"];
            mHorSeries.append("commands", [2, 2, 3, 4, 5, 6]);
            mChart.setAxisY(categoryAxisY, mHorSeries);
}

这是输出。 this is the output

有什么想法解决这个问题吗?谢谢。

答案

创建系列的一个简单选项是使用createSeries(),然后我们添加axisY和其他属性:

ChartView {
    id : mChart
    title: "Bash History Graph"
    anchors.fill: parent
    antialiasing: true
    animationOptions: ChartView.SeriesAnimations
    legend.alignment: Qt.AlignBottom

    Component.onCompleted: {
        var mHorSeries = mChart.createSeries(ChartView.SeriesTypeHorizontalBar)

        var categoryAxisY=Qt.createQmlObject('import QtCharts 2.2;BarCategoryAxis {}',mChart);
        mHorSeries.axisY = categoryAxisY

        categoryAxisY.categories = ["2007", "2008", "2009", "2010", "2011", "2012" ]

        var mBarSet = mHorSeries.append("commands", [2, 2, 3, 4, 5, 6])

        mChart.axisX(mHorSeries).min= 0 //Math.min.apply(null, mBarSet.values)
        mChart.axisX(mHorSeries).max= 10 //Math.max.apply(null, mBarSet.values)
    }
}

enter image description here

以上是关于ChartView没有显示BarSets数据的主要内容,如果未能解决你的问题,请参考以下文章

QML 使用 ChartView 崩溃问题

QML如何绘制不同的grabToImage()

在 QML 中获取对动态创建的 ChartView 的引用

chartView:轴值在缩放时发生变化

Android自定义chartView

Android Highcharts DialogFragment