标签: qchart

QCharts 右侧第二个 Y 轴

ValueAxis我想在 的右侧放置第二个ChartView。文档指出“轴可以放置在图表的下、上、左或右”

然而,我在 的文档中找不到任何属性AbstractAxisValueAxis或者ChartView与此相符。只有 的alignment属性AbstractAxis引起了我的注意,但它是 const 并且不能在 QML 中修改:

Invalid property assignment: "alignment" is a read-only property

我可以看到在多轴示例中有一种 C++ 方法来设置对齐方式,但我正在寻找一种 QtQuick 方法来设置对齐方式。我在这里错过了什么吗?

qt qml qtquick2 qchart

2
推荐指数
1
解决办法
2475
查看次数

QChartView 和 QScatterSeries 覆盖 QPointF 的标签

我有一个 QChartView,它显示一些 2D 点,这些点代表每个特定项目我想用项目名称来标记每个点,而不是用它的 x,y 坐标作为默认行为 在此输入图像描述

有没有办法实现覆盖创建或渲染标签的函数?

c++ qt5 qchart qchartview

2
推荐指数
1
解决办法
2174
查看次数

QChart 对大数据集无响应

我的这段代码适用于高达 1000 的数据大小。现在我用 65536 个点对其进行了测试。

\n\n
series = new QLineSeries();\n\nQList<QPointF> points;\npoints.reserve(data.size());\n\nfor(std::vector<int>::size_type i = 0; i != data.size(); i++) {\n    QPointF point(i, data[i]*100/max);\n    points.append(point);\n}\nseries->clear();\nseries->append(points);\n
Run Code Online (Sandbox Code Playgroud)\n\n

并且应用程序在 1 个核心全功率运行时冻结。几分钟后我就停下来了。

\n\n

如何防止 Qt 变得无响应。这个数据大小并不特殊,我希望图表视图能够处理高达百万点的数据集。

\n\n

编辑:\n我测量了时间

\n\n
series->append(points);\n
Run Code Online (Sandbox Code Playgroud)\n\n

2000分需要1秒。这意味着大约一分钟内 > 50.000 是无法使用的。

\n\n

更糟糕的是,对数刻度图

\n\n
serieslog->append(points);\n
Run Code Online (Sandbox Code Playgroud)\n\n

2000分需要40秒。那是完全无法使用的。原因是调试消息,几乎每个点都会打印出来。

\n\n
\n

QtCharts::XLogYDomain::calculateGeometryPoints(const QVector&) const>; 零和负值的对数未定义。

\n
\n\n

我可以用以下方法加快线性图的速度

\n\n
 series->setUseOpenGL(true);\n
Run Code Online (Sandbox Code Playgroud)\n\n

然而,对于 65536,它仍然需要 14 秒,这意味着每个点 200 \xc2\xb5s。\n仍然太多。我想要一个最低 10 Hz 的实时视频和一个实时直方图。时间必须 << 1 秒。

\n\n

编辑:\n这是一个使用我的代码的工作示例

\n\n
#include <QDebug>\n#include <QTime>\n#include <cmath>\n#include <stdlib.h>\n\n#include <QtCharts/QChartView>\n#include <QtCharts/QLineSeries>\n#include …
Run Code Online (Sandbox Code Playgroud)

qt qchart

2
推荐指数
1
解决办法
3542
查看次数

如何在 QtCharts 中添加子图?

我需要创建两个图表(子图,同步)并设置尺寸,如下所示:

  • 上图是输出面积的75%
  • 下图是输出区域高度的25%。

就像这个草图一样。

在此输入图像描述

一张图表很容易创建(代码如下)。但要添加第二个子图 - 它不起作用。我尝试通过 QVBoxLayout() 添加它,但也失败了。

我找到了所需的示例,如何使用 QCharts 创建子图?但它不是用 Python 编写的(这在尝试转换为 Python 时会引起麻烦)。这里https://doc.qt.io/qt-5/qchart.html#chartType-prop也不在那里,而且它也不在Python中。

如何添加子图并指示尺寸(以像素或%为单位)?

from random import uniform
from PyQt5.QtWidgets import QApplication, QMainWindow
import sys
from PyQt5.QtChart import QChart, QChartView, QLineSeries



class Window(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setGeometry(100, 100, 680, 500)
        self.create_linechart()
        self.show()

    def create_linechart(self):

        series = QLineSeries(self)
        for i in range(100):
            series.append(i, uniform(0, 10))

        chart = QChart()
        chart.addSeries(series)
        chart.createDefaultAxes()
        chartview = QChartView(chart)
        self.setCentralWidget(chartview)


App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec_())
Run Code Online (Sandbox Code Playgroud)

python pyqt5 qtcharts qchart

2
推荐指数
1
解决办法
783
查看次数

标签 统计

qchart ×4

qt ×2

c++ ×1

pyqt5 ×1

python ×1

qchartview ×1

qml ×1

qt5 ×1

qtcharts ×1

qtquick2 ×1