{"id":19307467,"url":"https://github.com/fair-acc/chart-qt","last_synced_at":"2025-04-22T12:36:43.431Z","repository":{"id":103257045,"uuid":"414971689","full_name":"fair-acc/chart-qt","owner":"fair-acc","description":"ChartQt is a charting library written in C++ focusing on performance. It uses the Qt libraries but has a dedicated rendering system running on top of QtQuick which gives it great performance and a wide platform support, being able to use any of the 3D rendering APIs OpenGL, Vulkan, Direct3D and Metal. Still in early development.","archived":false,"fork":false,"pushed_at":"2022-10-06T14:41:53.000Z","size":223,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-04-02T00:05:31.125Z","etag":null,"topics":["charting-library","cpp","data-visualization","qt","qt6","qtquick","rhi","scientific-visualization","shader"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fair-acc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-08T12:07:14.000Z","updated_at":"2024-09-13T03:39:44.000Z","dependencies_parsed_at":"2023-04-26T23:01:02.163Z","dependency_job_id":null,"html_url":"https://github.com/fair-acc/chart-qt","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fair-acc%2Fchart-qt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fair-acc%2Fchart-qt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fair-acc%2Fchart-qt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fair-acc%2Fchart-qt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fair-acc","download_url":"https://codeload.github.com/fair-acc/chart-qt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250242115,"owners_count":21398067,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["charting-library","cpp","data-visualization","qt","qt6","qtquick","rhi","scientific-visualization","shader"],"created_at":"2024-11-10T00:11:09.297Z","updated_at":"2025-04-22T12:36:43.424Z","avatar_url":"https://github.com/fair-acc.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ChartQt\n\n| :exclamation:  ChartQt is still in a very early phase of its development. There are still many rough edges, missing functionalities and bugs. |\n|-----------------------------------------------------------------------------------------------------------------------------------------------|\n\nChartQt is a charting library written in C++ focusing on performance. It uses the Qt libraries but\nhas a dedicated rendering system running on top of QtQuick which gives it great performance and\na wide platform support, being able to use any of the 3D rendering APIs OpenGL, Vulkan, Direct3D and Metal.\n\n## Building\n\nChartQt can be built like any other CMake-based project:\n\n    $ git clone https://github.com/fair-acc/chart-qt.git\n    $ cd chart-qt\n    $ mkdir build\n    $ cd build\n    $ cmake ..\n    $ cmake --build .\n\n## Usage\n\nChartQt is written in C++ but it can also be used by a QML application:\n\n    import QtQuick.Controls 2.3\n    import ChartQt 1.0\n    import QtQuick 2.0\n\n    ApplicationWindow {\n        visible: true\n        width: 1980\n        height: 450\n\n        menuBar: MenuBar {\n            Menu {\n                title: qsTr(\"File\")\n                Action {\n                    text: \"foo\"\n                }\n            }\n        }\n\n        header: ToolBar {\n            ToolButton {\n                text: chart.paused ? \"Resume\" : \"Pause\"\n                onClicked: chart.paused = !chart.paused\n            }\n        }\n\n        SinDataSet\n        {\n            id: sinDataSet\n        }\n\n        ChartLayout {\n            anchors.top: parent.top\n            anchors.left: parent.left\n            anchors.right: parent.right\n            anchors.bottom: parent.bottom\n            orientation: Qt.Vertical\n\n            ChartItem {\n                id: chart\n                clip: true\n\n                DefaultZoomHandler {}\n\n                XYPlot {\n                    id: xy\n                    xAxis: bottomAxis\n                    yAxis: leftAxis\n                    dataSet: sinDataSet\n                }\n\n                Axis {\n                    id: bottomAxis\n                    position: Axis.Bottom\n                    max: 10\n                }\n\n                Axis {\n                    id: leftAxis\n                    position: Axis.Left\n                    min: -1\n                    max: 1\n                }\n\n                Axis {\n                    id: leftAxis1\n                    position: Axis.Left\n                    min: 0\n                    max: 10\n                }\n\n                MouseArea {\n                    id: topHandle\n                    width: 20\n                    height: 10\n                    anchors.right: parent.right\n                    y: parent.height * 0.2 - height / 2\n                    cursorShape: Qt.SizeVerCursor\n\n                    property real pressY\n                    onPressed: (mouse) =\u003e pressY = mouse.y\n                    onPositionChanged: (mouse) =\u003e {\n                        y += mouse.y - pressY\n                    }\n                }\n\n                MouseArea {\n                    id: bottomHandle\n                    width: 20\n                    anchors.right: parent.right\n                    cursorShape: Qt.SizeVerCursor\n                    y: parent.height * 0.8 - height / 2\n                    height: 10\n\n                    property real pressY\n                    onPressed: (mouse) =\u003e pressY = mouse.y\n                    onPositionChanged: (mouse) =\u003e {\n                        y += mouse.y - pressY\n                    }\n                }\n\n                Rectangle {\n                    anchors.right: parent.right\n                    width: 20\n                    anchors.top: topHandle.verticalCenter\n                    anchors.bottom: bottomHandle.verticalCenter\n\n\n                    gradient: Gradient {\n                        GradientStop { position: 0.0; color: \"green\" }\n                        GradientStop { position: 1.0; color: \"red\" }\n                    }\n                }\n            }\n            ChartItem {\n                id: waterfall\n\n                Component.onCompleted: waterfall.addAxis(bottomAxis)\n                    Axis {\n                    position: Axis.Right\n                    min: 0\n                    max: 10\n                }\n\n                WaterfallPlot {\n                    id: wf\n\n                    gradientStart: 1 - (bottomHandle.y + bottomHandle.height / 2) / chart.height\n                    gradientStop: 1 - (topHandle.y + topHandle.height / 2) / chart.height\n\n                    xAxis: bottomAxis\n                    dataSet: sinDataSet\n                }\n            }\n        }\n    }\n\nThis code will produce this output:\n\n\u003cimg src=\"example.png\" width=800 alt=\"simple ChartQt example\"/\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffair-acc%2Fchart-qt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffair-acc%2Fchart-qt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffair-acc%2Fchart-qt/lists"}