├── docs ├── CNAME ├── images │ └── charts.png ├── sitemap.xml ├── css │ └── theme.css ├── 404.html └── index.html ├── src ├── assets │ ├── CNAME │ └── images │ │ └── charts.png ├── contents │ ├── 404 │ │ └── index.md │ ├── sitemap.xml │ │ └── index.yml │ └── index.md ├── themes │ └── default │ │ ├── .gitignore │ │ ├── README.md │ │ ├── templates │ │ ├── pages │ │ │ ├── default.mustache │ │ │ ├── 404.mustache │ │ │ └── home.mustache │ │ ├── partials │ │ │ ├── footer.mustache │ │ │ └── header.mustache │ │ ├── sitemap.mustache │ │ ├── redirect.mustache │ │ └── html.mustache │ │ ├── LICENSE │ │ └── assets │ │ └── css │ │ └── theme.css ├── site.yml ├── config.yml ├── types │ ├── page.yml │ ├── not-found.yml │ └── redirect.yml ├── pipelines │ ├── 404.yml │ ├── redirect.yml │ ├── html.yml │ └── sitemap.yml └── blocks │ └── youtube.yml ├── .gitignore ├── .gitmodules ├── Makefile └── README.md /docs/CNAME: -------------------------------------------------------------------------------- 1 | example.com -------------------------------------------------------------------------------- /src/assets/CNAME: -------------------------------------------------------------------------------- 1 | example.com -------------------------------------------------------------------------------- /src/contents/sitemap.xml/index.yml: -------------------------------------------------------------------------------- 1 | type: sitemap -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .swiftpm 3 | .vscode 4 | .build 5 | -------------------------------------------------------------------------------- /src/themes/default/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .swiftpm 3 | .vscode 4 | .build 5 | -------------------------------------------------------------------------------- /src/site.yml: -------------------------------------------------------------------------------- 1 | baseUrl: "https://artemnovichkov.github.io/awesome-swift-charts/" 2 | title: "Awesome Swift Charts" -------------------------------------------------------------------------------- /docs/images/charts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artemnovichkov/awesome-swift-charts/HEAD/docs/images/charts.png -------------------------------------------------------------------------------- /src/assets/images/charts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artemnovichkov/awesome-swift-charts/HEAD/src/assets/images/charts.png -------------------------------------------------------------------------------- /src/themes/default/README.md: -------------------------------------------------------------------------------- 1 | # Minimal theme 2 | 3 | Just a minimal theme for the Toucan static site generator. 4 | 5 | 6 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "src/themes/default"] 2 | path = src/themes/default 3 | url = https://github.com/toucansites/minimal-theme 4 | -------------------------------------------------------------------------------- /src/config.yml: -------------------------------------------------------------------------------- 1 | dateFormats: 2 | input: 3 | format: "yyyy-MM-dd HH:mm:ss" 4 | output: 5 | year: 6 | format: "y" -------------------------------------------------------------------------------- /src/types/page.yml: -------------------------------------------------------------------------------- 1 | id: page 2 | default: true 3 | 4 | properties: 5 | title: 6 | type: string 7 | required: true 8 | default: null 9 | -------------------------------------------------------------------------------- /src/types/not-found.yml: -------------------------------------------------------------------------------- 1 | id: not-found 2 | paths: 3 | - 404 4 | 5 | properties: 6 | title: 7 | type: string 8 | required: true 9 | default: null 10 | -------------------------------------------------------------------------------- /src/themes/default/templates/pages/default.mustache: -------------------------------------------------------------------------------- 1 | {{ 5 | {{& page.contents.html}} 6 | 7 | 8 | {{/main}} 9 | {{/html}} 10 | -------------------------------------------------------------------------------- /src/themes/default/templates/pages/404.mustache: -------------------------------------------------------------------------------- 1 | {{ 5 | {{& page.contents.html}} 6 | 7 | 8 | {{/main}} 9 | {{/html}} 10 | -------------------------------------------------------------------------------- /src/types/redirect.yml: -------------------------------------------------------------------------------- 1 | id: redirect 2 | 3 | properties: 4 | to: 5 | type: string 6 | required: true 7 | code: 8 | type: int 9 | required: false 10 | default: 301 11 | 12 | -------------------------------------------------------------------------------- /docs/sitemap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | https://artemnovichkov.github.io/awesome-swift-charts/ 4 | 2025-06-10 5 | 6 | -------------------------------------------------------------------------------- /src/contents/404/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | type: not-found 3 | title: "Not found" 4 | description: "This page does not exists." 5 | template: "pages.404" 6 | --- 7 | 8 | ## Not found 9 | 10 | This page does not exists. 11 | 12 | [Home](/) 13 | -------------------------------------------------------------------------------- /src/pipelines/404.yml: -------------------------------------------------------------------------------- 1 | id: not-found 2 | contentTypes: 3 | include: 4 | - not-found 5 | 6 | engine: 7 | id: mustache 8 | options: 9 | contentTypes: 10 | not-found: 11 | template: "pages.404" 12 | 13 | output: 14 | path: "" 15 | file: 404 16 | ext: html -------------------------------------------------------------------------------- /src/pipelines/redirect.yml: -------------------------------------------------------------------------------- 1 | id: redirect 2 | contentTypes: 3 | include: 4 | - redirect 5 | 6 | engine: 7 | id: mustache 8 | options: 9 | contentTypes: 10 | redirect: 11 | template: "redirect" 12 | 13 | output: 14 | path: "{{slug}}" 15 | file: index 16 | ext: html -------------------------------------------------------------------------------- /src/themes/default/templates/partials/footer.mustache: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/themes/default/templates/sitemap.mustache: -------------------------------------------------------------------------------- 1 | 2 | {{#empty(urls)}} 3 | {{/empty(urls)}} 4 | {{^empty(urls)}} 5 | 6 | {{#context.pages}} 7 | {{permalink}} 8 | {{lastUpdate.formats.sitemap}} 9 | {{/context.pages}} 10 | 11 | {{/empty(urls)}} 12 | -------------------------------------------------------------------------------- /src/pipelines/html.yml: -------------------------------------------------------------------------------- 1 | id: html 2 | 3 | scopes: 4 | 5 | queries: 6 | 7 | dataTypes: 8 | 9 | contentTypes: 10 | include: 11 | - page 12 | 13 | iterators: 14 | 15 | transformers: 16 | 17 | engine: 18 | id: mustache 19 | options: 20 | contentTypes: 21 | page: 22 | template: "pages.default" 23 | output: 24 | path: "{{slug}}" 25 | file: index 26 | ext: html -------------------------------------------------------------------------------- /src/themes/default/templates/partials/header.mustache: -------------------------------------------------------------------------------- 1 |
2 | 9 | 10 | 17 |
-------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | SHELL=/bin/bash 2 | 3 | # brew install optipng jpegoptim 4 | 5 | dev: 6 | toucan generate ./src ./docs --base-url http://localhost:3000/ 7 | 8 | dist: 9 | toucan generate ./src ./docs 10 | 11 | watch: 12 | toucan watch ./src ./docs --base-url http://localhost:3000/ 13 | 14 | serve: 15 | toucan serve ./docs -p 3000 16 | 17 | png: 18 | find ./src/* -type f -name '*.png' -exec optipng -o7 {} \; 19 | 20 | jpg: 21 | find ./src/* -type f -name '*.jpg' | xargs jpegoptim --all-progressive '*.jpg' 22 | -------------------------------------------------------------------------------- /src/pipelines/sitemap.yml: -------------------------------------------------------------------------------- 1 | id: sitemap 2 | definesType: true 3 | contentTypes: 4 | include: 5 | - sitemap 6 | 7 | queries: 8 | pages: 9 | contentType: page 10 | scope: list 11 | orderBy: 12 | - key: lastUpdate 13 | direction: desc 14 | 15 | engine: 16 | id: mustache 17 | options: 18 | contentTypes: 19 | sitemap: 20 | template: "sitemap" 21 | output: 22 | path: "" 23 | file: sitemap 24 | ext: xml -------------------------------------------------------------------------------- /src/themes/default/templates/redirect.mustache: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Redirecting… 5 | 6 | 7 | 8 | 9 |

Redirecting…

10 | Click here if you are not redirected. 11 | 12 | -------------------------------------------------------------------------------- /src/blocks/youtube.yml: -------------------------------------------------------------------------------- 1 | name: youtube 2 | parameters: 3 | - label: code 4 | default: "" 5 | - label: height 6 | default: "400" 7 | - label: target 8 | default: "_blank" 9 | #output: "" 10 | tag: iframe 11 | attributes: 12 | - name: width 13 | value: "100%" 14 | - name: height 15 | value: "{{height}}" 16 | - name: src 17 | value: "https://www.youtube.com/embed/{{code}}" 18 | - name: frameborder 19 | value: "0" 20 | - name: allow 21 | value: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" -------------------------------------------------------------------------------- /src/themes/default/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023-2024 Binary Birds Kft. 4 | 5 | Permission is hereby granted, free of charge, to any person 6 | obtaining a copy of this software and associated documentation 7 | files (the "Software"), to deal in the Software without 8 | restriction, including without limitation the rights to use, 9 | copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the 11 | Software is furnished to do so, subject to the following 12 | conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 19 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 20 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 21 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 22 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 24 | OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /src/themes/default/templates/pages/home.mustache: -------------------------------------------------------------------------------- 1 | {{ 5 | 6 |
7 |
8 | {{& page.contents.html}} 9 |
10 |
11 | 12 | {{/main}} 13 | {{/html}} 14 | -------------------------------------------------------------------------------- /docs/css/theme.css: -------------------------------------------------------------------------------- 1 | header, 2 | footer, 3 | .page, 4 | img { 5 | max-width: 800px; 6 | margin: 0 auto; 7 | width: 100%; 8 | } 9 | 10 | header { 11 | text-align: center; 12 | padding-bottom: 16px; 13 | } 14 | 15 | footer { 16 | text-align: center; 17 | padding-top: 16px; 18 | } 19 | 20 | .page { 21 | padding-top: 16px; 22 | padding-bottom: 16px; 23 | } 24 | 25 | header #logo img { 26 | width: 128px; 27 | } 28 | 29 | html { 30 | background-color: rgb(13, 17, 23); 31 | color: white; 32 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; 33 | } 34 | 35 | a { 36 | color: rgb(88, 166, 255); 37 | text-decoration: none; 38 | } 39 | 40 | a:hover { 41 | text-decoration: underline; 42 | } 43 | 44 | ul li { 45 | margin-bottom: 10px; 46 | } 47 | 48 | .github-corner:hover .octo-arm { 49 | animation: octocat-wave 560ms ease-in-out 50 | } 51 | 52 | @keyframes octocat-wave { 53 | 54 | 0%, 55 | 100% { 56 | transform: rotate(0) 57 | } 58 | 59 | 20%, 60 | 60% { 61 | transform: rotate(-25deg) 62 | } 63 | 64 | 40%, 65 | 80% { 66 | transform: rotate(10deg) 67 | } 68 | } 69 | 70 | @media (max-width:500px) { 71 | .github-corner:hover .octo-arm { 72 | animation: none 73 | } 74 | 75 | .github-corner .octo-arm { 76 | animation: octocat-wave 560ms ease-in-out 77 | } 78 | } -------------------------------------------------------------------------------- /src/themes/default/assets/css/theme.css: -------------------------------------------------------------------------------- 1 | header, 2 | footer, 3 | .page, 4 | img { 5 | max-width: 800px; 6 | margin: 0 auto; 7 | width: 100%; 8 | } 9 | 10 | header { 11 | text-align: center; 12 | padding-bottom: 16px; 13 | } 14 | 15 | footer { 16 | text-align: center; 17 | padding-top: 16px; 18 | } 19 | 20 | .page { 21 | padding-top: 16px; 22 | padding-bottom: 16px; 23 | } 24 | 25 | header #logo img { 26 | width: 128px; 27 | } 28 | 29 | html { 30 | background-color: rgb(13, 17, 23); 31 | color: white; 32 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; 33 | } 34 | 35 | a { 36 | color: rgb(88, 166, 255); 37 | text-decoration: none; 38 | } 39 | 40 | a:hover { 41 | text-decoration: underline; 42 | } 43 | 44 | ul li { 45 | margin-bottom: 10px; 46 | } 47 | 48 | .github-corner:hover .octo-arm { 49 | animation: octocat-wave 560ms ease-in-out 50 | } 51 | 52 | @keyframes octocat-wave { 53 | 54 | 0%, 55 | 100% { 56 | transform: rotate(0) 57 | } 58 | 59 | 20%, 60 | 60% { 61 | transform: rotate(-25deg) 62 | } 63 | 64 | 40%, 65 | 80% { 66 | transform: rotate(10deg) 67 | } 68 | } 69 | 70 | @media (max-width:500px) { 71 | .github-corner:hover .octo-arm { 72 | animation: none 73 | } 74 | 75 | .github-corner .octo-arm { 76 | animation: octocat-wave 560ms ease-in-out 77 | } 78 | } -------------------------------------------------------------------------------- /src/themes/default/templates/html.mustache: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | {{page.title}} - {{site.title}} 8 | 9 | 10 | 11 | 12 | 13 | {{#page.imageUrl}}{{/page.imageUrl}} 14 | 15 | 16 | 17 | 18 | {{#page.imageUrl}}{{/page.imageUrl}} 19 | 20 | 21 | 22 | {{#page.css}}{{/page.css}} 23 | 24 | 25 | 26 | 27 | 28 |
29 | {{$main}}{{/main}} 30 |
31 | 32 | {{> partials.footer}} 33 | 34 | {{#page.js}}{{/page.js}} 35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Not found - Awesome Swift Charts 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
31 |

Not found

This page does not exists.

Home

32 |
33 | 34 | 35 |
36 | 37 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Awesome Swift Charts 2 | 3 | ![SwiftCharts](./src/assets/images/charts.png) 4 | 5 | ### WWDC22 6 | 7 | - [Hello Swift Charts](https://developer.apple.com/videos/play/wwdc2022/10136/) 8 | - [Design an effective chart](https://developer.apple.com/videos/play/wwdc2022/110340/) 9 | - [Swift Charts: Raise the bar](https://developer.apple.com/videos/play/wwdc2022/10137/) 10 | - [Design app experiences with charts](https://developer.apple.com/videos/play/wwdc2022/110342/) 11 | 12 | ### WWDC23 13 | 14 | - [Explore pie charts and interactivity in Swift Charts](https://developer.apple.com/videos/play/wwdc2023/10037/) 15 | 16 | ### WWDC24 17 | 18 | - [Swift Charts: Vectorized and function plots](https://developer.apple.com/videos/play/wwdc2024/10155/) 19 | 20 | ### WWDC25 21 | 22 | - [Bring Swift Charts to the third dimension](https://developer.apple.com/videos/play/wwdc2025/313) 23 | 24 | ### Videos 25 | 26 | - [Swift Charts - Beyond the basics](https://www.youtube.com/watch?v=r22o9ZupNVk) 27 | - [How FAST is Swift Charts? Can it handle a sound visualizer? - SwiftUI - iOS 16](https://www.youtube.com/watch?v=8kX1CX-ujlA) 28 | 29 | ### Articles 30 | 31 | - [Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/charts) 32 | - [Mastering charts in SwiftUI. Pie and Donut charts.](https://swiftwithmajid.com/2023/09/26/mastering-charts-in-swiftui-pie-and-donut-charts/) 33 | - [Mastering charts in SwiftUI. Scrolling.](https://swiftwithmajid.com/2023/07/25/mastering-charts-in-swiftui-scrolling/) 34 | - [Mastering charts in SwiftUI. Selection.](https://swiftwithmajid.com/2023/07/18/mastering-charts-in-swiftui-selection/) 35 | - [Mastering charts in SwiftUI. Accessibility.](https://swiftwithmajid.com/2023/02/28/mastering-charts-in-swiftui-accessibility/) 36 | - [Mastering charts in SwiftUI. Legends.](https://swiftwithmajid.com/2023/02/22/mastering-charts-in-swiftui-legends/) 37 | - [Mastering charts in SwiftUI. Customizations.](https://swiftwithmajid.com/2023/02/15/mastering-charts-in-swiftui-customizations/) 38 | - [Mastering charts in SwiftUI. Interactions.](https://swiftwithmajid.com/2023/02/06/mastering-charts-in-swiftui-interactions/) 39 | - [Mastering charts in SwiftUI. Custom Marks.](https://swiftwithmajid.com/2023/01/26/mastering-charts-in-swiftui-custom-marks/) 40 | - [Mastering charts in SwiftUI. Mark styling.](https://swiftwithmajid.com/2023/01/18/mastering-charts-in-swiftui-mark-styling/) 41 | - [Mastering charts in SwiftUI. Basics.](https://swiftwithmajid.com/2023/01/10/mastering-charts-in-swiftui-basics/) 42 | - [Build and style a chart with the new Swift Charts framework](https://nilcoalescing.com/blog/BuildAndStyleAChartWithSwiftChartsFramework) 43 | - [Ridgeline plot with Swift Charts](https://nilcoalescing.com/blog/RidgePlotWithSwiftCharts) 44 | - [Use SwiftUI views as points in scatter plot](https://nilcoalescing.com/blog/ScatterPlotWithCustomViews) 45 | - [Plotting data distributions with Swift Charts](https://nilcoalescing.com/blog/PlottingDataDistributionsWithSwiftCharts) 46 | - [Using Measurements from Foundation for values in Swift Charts](https://nilcoalescing.com/blog/UsingMeasurementsFromFoundationAsValuesInSwiftCharts) 47 | - [Fill bar marks with gradient in Swift Charts](https://nilcoalescing.com/blog/FillBarMarksWithGradient) 48 | - [Area chart with a dimming layer up to the current point in time](https://nilcoalescing.com/blog/AreaChartWithADimmingLayer) 49 | - [Show chart annotations on hover in Swift Charts](https://nilcoalescing.com/blog/ChartAnnotationsOnHover) 50 | 51 | ### GPTs 52 | 53 | - [Apple Swift Charts Complete Code Expert](https://chatgpt.com/g/g-8U1iB3EIq-apple-swift-charts-complete-code-expert) 54 | 55 | ### Examples 56 | 57 | - [Visualizing your app’s data](https://developer.apple.com/documentation/charts/visualizing_your_app_s_data) 58 | - [Creating a data visualization dashboard with Swift Charts](https://developer.apple.com/documentation/Charts/creating-a-data-visualization-dashboard-with-swift-charts) 59 | - [Swift Charts Examples](https://github.com/jordibruin/Swift-Charts-Examples) 60 | - [BookstoreStategist - SwiftCharts Demo Project](https://github.com/gahntpo/BookstoreStategist) 61 | - [Reproducing some D3 Charts with Swift Charts](https://github.com/raheelahmad/Swift-D3-Charts) 62 | 63 | -------------------------------------------------------------------------------- /src/contents/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | slug: "" 3 | title: "Awesome Swift Charts" 4 | description: "A hand-curated list of Swift Charts resources." 5 | template: pages.home 6 | --- 7 | 8 | # Awesome Swift Charts 9 | 10 | A hand-curated list of [Swift Charts](https://developer.apple.com/documentation/charts) resources. Feel free to contribute! 11 | 12 | ![SwiftCharts](/awesome-swift-charts/images/charts.png) 13 | 14 | ### WWDC22 15 | 16 | - [Hello Swift Charts](https://developer.apple.com/videos/play/wwdc2022/10136/) 17 | - [Design an effective chart](https://developer.apple.com/videos/play/wwdc2022/110340/) 18 | - [Swift Charts: Raise the bar](https://developer.apple.com/videos/play/wwdc2022/10137/) 19 | - [Design app experiences with charts](https://developer.apple.com/videos/play/wwdc2022/110342/) 20 | 21 | ### WWDC23 22 | 23 | - [Explore pie charts and interactivity in Swift Charts](https://developer.apple.com/videos/play/wwdc2023/10037/) 24 | 25 | ### WWDC24 26 | 27 | - [Swift Charts: Vectorized and function plots](https://developer.apple.com/videos/play/wwdc2024/10155/) 28 | 29 | ### WWDC25 30 | 31 | - [Bring Swift Charts to the third dimension](https://developer.apple.com/videos/play/wwdc2025/313) 32 | 33 | ### Videos 34 | 35 | @Youtube(code: "r22o9ZupNVk") 36 |   37 | @Youtube(code: "8kX1CX-ujlA") 38 | 39 | ### Articles 40 | 41 | - [Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/charts) 42 | - [Mastering charts in SwiftUI. Pie and Donut charts.](https://swiftwithmajid.com/2023/09/26/mastering-charts-in-swiftui-pie-and-donut-charts/) 43 | - [Mastering charts in SwiftUI. Scrolling.](https://swiftwithmajid.com/2023/07/25/mastering-charts-in-swiftui-scrolling/) 44 | - [Mastering charts in SwiftUI. Selection.](https://swiftwithmajid.com/2023/07/18/mastering-charts-in-swiftui-selection/) 45 | - [Mastering charts in SwiftUI. Accessibility.](https://swiftwithmajid.com/2023/02/28/mastering-charts-in-swiftui-accessibility/) 46 | - [Mastering charts in SwiftUI. Legends.](https://swiftwithmajid.com/2023/02/22/mastering-charts-in-swiftui-legends/) 47 | - [Mastering charts in SwiftUI. Customizations.](https://swiftwithmajid.com/2023/02/15/mastering-charts-in-swiftui-customizations/) 48 | - [Mastering charts in SwiftUI. Interactions.](https://swiftwithmajid.com/2023/02/06/mastering-charts-in-swiftui-interactions/) 49 | - [Mastering charts in SwiftUI. Custom Marks.](https://swiftwithmajid.com/2023/01/26/mastering-charts-in-swiftui-custom-marks/) 50 | - [Mastering charts in SwiftUI. Mark styling.](https://swiftwithmajid.com/2023/01/18/mastering-charts-in-swiftui-mark-styling/) 51 | - [Mastering charts in SwiftUI. Basics.](https://swiftwithmajid.com/2023/01/10/mastering-charts-in-swiftui-basics/) 52 | - [Build and style a chart with the new Swift Charts framework](https://nilcoalescing.com/blog/BuildAndStyleAChartWithSwiftChartsFramework) 53 | - [Ridgeline plot with Swift Charts](https://nilcoalescing.com/blog/RidgePlotWithSwiftCharts) 54 | - [Use SwiftUI views as points in scatter plot](https://nilcoalescing.com/blog/ScatterPlotWithCustomViews) 55 | - [Plotting data distributions with Swift Charts](https://nilcoalescing.com/blog/PlottingDataDistributionsWithSwiftCharts) 56 | - [Using Measurements from Foundation for values in Swift Charts](https://nilcoalescing.com/blog/UsingMeasurementsFromFoundationAsValuesInSwiftCharts) 57 | - [Fill bar marks with gradient in Swift Charts](https://nilcoalescing.com/blog/FillBarMarksWithGradient) 58 | - [Area chart with a dimming layer up to the current point in time](https://nilcoalescing.com/blog/AreaChartWithADimmingLayer) 59 | - [Show chart annotations on hover in Swift Charts](https://nilcoalescing.com/blog/ChartAnnotationsOnHover) 60 | 61 | ### GPTs 62 | 63 | - [Apple Swift Charts Complete Code Expert](https://chatgpt.com/g/g-8U1iB3EIq-apple-swift-charts-complete-code-expert) 64 | 65 | ### Examples 66 | 67 | - [Visualizing your app’s data](https://developer.apple.com/documentation/charts/visualizing_your_app_s_data) 68 | - [Creating a data visualization dashboard with Swift Charts](https://developer.apple.com/documentation/Charts/creating-a-data-visualization-dashboard-with-swift-charts) 69 | - [Swift Charts Examples](https://github.com/jordibruin/Swift-Charts-Examples) 70 | - [BookstoreStategist - SwiftCharts Demo Project](https://github.com/gahntpo/BookstoreStategist) 71 | - [Reproducing some D3 Charts with Swift Charts](https://github.com/raheelahmad/Swift-D3-Charts) 72 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Awesome Swift Charts - Awesome Swift Charts 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 | 32 | 37 | 38 | 39 |
40 | 41 | 44 | 45 | 46 | 47 | --------------------------------------------------------------------------------