版本 4.0.0,同步于 MPAndroidChart #f6a398b
发布/迁移说明。
请注意:Charts 3.0 有一些破坏性更改。请阅读独立的仓库中。Pods 也现在是 Charts
和 ChartsRealm
,而不是 Charts/Core
和 Charts/Realm
另一个提示:ChartsRealm 现在在一个Charts/Core
Charts/Realm
额外提醒:随着Swift的发展,如果您没有使用最新的Swift编译器,请勿检出master分支。相反,您应该前往发布页面,选择适合您的版本。
- Xcode 14 / Swift 5.7(master分支)
- iOS >= 12.0(作为
嵌入式
框架使用) - tvOS >= 12.0
- macOS >= 10.13
有一个名为MPAndroidChart
的美丽库,由Philipp Jahoda创建,它已成为Android开发人员中最受欢迎的库之一,但没有合适的解决方案来为iOS创建图表。
我选择使用Swift
编写,因为它可以由编译器高度优化,并且可以在Swift
和ObjC
项目中使用。演示项目使用ObjC
编写,以演示其工作原理。
这个库的惊人特性是,对于Android、iOS、tvOS和macOS,它为您节省了开发时间,因为学习曲线是一致的——它只发生一次,代码也保持高度相似,因此开发人员无需重新设计和编码应用程序以使用不同的库生成相同的结果。(这还不包括目前确实没有其他好的选择这个事实……)
运行演示项目有问题吗?
ChartsDemo/ChartsDemo.xcodeproj
是iOS/tvOS的演示项目ChartsDemo-OSX/ChartsDemo-OSX.xcodeproj
是macOS的演示项目- 请确保您正在运行受支持的Xcode版本。
- 通常它会在上面几行指定。
- 在大多数情况下,它将是最新版本的Xcode。
- 请确保您的项目支持Swift 5.0
- 可选:在项目文件夹中运行
carthage checkout
,以获取依赖项(即测试依赖项)。- 如果没有Carthage,您可以在这里获取它。
使用方法
为了正确编译
- 将
Charts.xcodeproj
拖动到您的项目中 - 进入您的目标设置,在“框架、库和嵌入式内容”部分下点击“+”,选择Charts.framework
@import Charts
- 当在ObjC项目中使用Swift时
- 您需要导入Bridging Header。通常它是“YourProject-Swift.h”,所以ChartsDemo中是“ChartsDemo-Swift.h”。请勿在您的项目中实际包含“ChartsDemo-Swift.h” :-)
- (Xcode 8.1及之前版本)在“构建选项”下,勾选“嵌入式内容包含Swift代码”
- (Xcode 8.2及以上版本)在“构建选项”下,勾选“始终嵌入Swift标准库”
- 当使用Realm.io
- 请注意,Realm框架并没有与Charts链接 - 它仅用于可选绑定。这意味着您需要在项目中包含框架,并且版本要与与Charts编译的版本兼容。我们将尽力始终使用最新版本编译。
- 您还需要添加
ChartsRealm
作为依赖项。
第三方教程
视频教程
博客文章
- 使用Swift 3和iOS 10中的Realm和Charts(Sami Korpela)
- 在Swift 3和iOS 10中创建折线图(Osian Smith)
- 使用Swift 3和Charts进行初步设置和示例
- 使用Swift在Swift中创建雷达图(David Piper)
- 使用Charts框架和SwiftUI在iOS中进行绘图(Evgeny Basisty)
- 使用iOS-Charts建立基本条形图(Penny Huang)
- iOS-Charts教程:使用自定义标记突出显示选中的值(Penny Huang)
希望您的教程出现在这里?创建一个PR!
故障排除
无法编译?
- 请注意从CocoaPods或Carthage安装编译后的框架与复制源代码之间的区别。
- 请再次阅读《使用》部分。
- 在问题中搜索
- 在问题部分礼貌询问
其他问题/功能请求
- 在问题中搜索
- 在问题部分礼貌询问
CocoaPods 安装
在Podfile中添加 pod 'Charts'
。 "Charts" 是库的名称。
为了支持 Realm,请也添加 pod 'ChartsRealm'
。
注意: 不是一个正确的库,它指向另一个由其他人创建的项目。pod 'ios-charts'
Carthage 安装
图表现在包含 Carthage 的预构建二进制文件。
github "danielgindi/Charts" == 4.1.0
github "danielgindi/Charts" ~> 4.1.0
为了构建新版本的二进制文件,请使用 carthage build --no-skip-current && carthage archive Charts
。
Swift 包管理器安装
Swift 包管理器
dependencies: [
.package(url: "https://github.com/danielgindi/Charts.git", .upToNextMajor(from: "4.1.0"))
]
第三方绑定
Xamarin(由@Flash3001提供):iOS - GitHub/NuGet。 Android - GitHub/NuGet。
帮助
如果你喜欢这里看到的内容,并想支持在这个存储库中进行的工作,你可以
注意:MPAndroidChart(https://github.com/PhilJay/MPAndroidChart)的作者是这个库存在的理由,他正在他的页面上接受捐款。他值得得到这些!
问题和问题
如果你有任何问题或问题,你应该
- 确保你使用的是库的最新版本。检查发布部分。
- 学习Android版本的文档Wiki
- 使用
ios-charts
标签在stackoverflow中搜索或打开问题 - 搜索您的问题(打开的或已关闭的)的已知问题
- 创建新问题(请在
🔥 在创建重复的问题之前先进行搜索)🔥
功能
核心功能
- 8种不同的图表类型
- 双轴缩放(通过触摸手势、轴分开或捏合缩放)
- 拖动/平移(通过触摸手势)
- 组合图表(折线-、条形-、散点-、烛台-、气泡-)
- 双轴(分开)
- 自定义轴(X轴和Y轴)
- 突出显示值(带有可定制的弹出视图)
- 将图表保存到相册/导出到PNG/JPEG
- 预定义颜色模板
- 图例(自动生成,可定制)
- 动画(在X轴和Y轴上构建动画)
- 限制线(提供额外的信息,最大值,...)
- 完全可定制(画笔、字体、图例、颜色、背景、手势、虚线,...)
- 直接从Realm.io移动数据库中绘图(在此处)
图表类型
当前屏幕截图是从原始存储库中获取的,因为它们渲染得完全一样 :-)
- 条形图(分组数据集)
- 水平条形图
- 饼图(包含选择功能,...)
- 散点图(包括正方形、三角形、圆形等,更多)
- 蜡烛图(适用于金融数据)
- 气泡图(气泡覆盖面积表示值)
- 雷达图(蜘蛛网图)
文档
目前iOS/tvOS/macOS版本的文档不必要,因为API与Android上相同达95%。
您可以在以下位置阅读官方MPAndroidChart文档:Wiki
或者您可以看到Objective-C和Swift的Charts示例项目(ChartsDemo-iOS,macOS的ChartsDemo-macOS),从中学习如何操作。
特别感谢
感谢 @liuxuan30、@petester42 和 @AlBirdie 对新功能、bug修复以及参与开源社区活动的大力支持!你们对那些带着问题和疑问来到这里的人都是极大的帮助,没有你们,我无法回复所有这些问题。
我们的精彩赞助商
Debricked:使用开源软件的安全性
许可证
版权所有 2016 Daniel Cohen Gindi & Philipp Jahoda
遵循Apache许可证版本2.0(“许可证”);除非您同意书面形式或适用法律要求,否则不得使用本文件,除非与许可证一致。您可以在以下位置获取许可证的副本:
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,在许可证下分发的软件仅按“现状”分发给您,不提供任何明示或暗示的保证或条件。有关许可协议中对权限和限制的具体语言,请参阅许可证。