版本 4.0.0,与MPAndroidChart #f6a398b同步
发行/迁移说明。
请注意:Charts 5.0有一些破坏性更改。为了防止与苹果的新Swift Charts冲突, Charts已被重命名为DGCharts。请阅读还有一点需要注意的是:随着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,您可以在这里获得它:这里.
使用方法
为了正确编译
- 将
DGCharts.xcodeproj
拖到您的项目中去 - 转到您的目标设置,在“框架、库和嵌入内容”部分下点击“+”,然后选择DGCharts.framework
@import DGCharts
- 当在ObjC项目中使用Swift
- 您需要导入您的Bridging头文件。通常它被称为"YourProject-Swift.h",因此在ChartsDemo中它是"ChartsDemo-Swift.h"。不要试图将"ChartsDemo-Swift.h"实际包括到您的项目中 :-)
- (Xcode 8.1及之前版本) 在“构建选项”下,勾选“嵌入内容包含Swift代码”
- (Xcode 8.2及更高版本) 在“构建选项”下,勾选“始终嵌入Swift标准库”
- 当使用Realm.io
- 请注意,Realm框架不是与Charts链接的——它只是为了可选绑定。这意味着您需要在项目中包含框架,并与编译DGCharts的兼容版本相匹配。我们将尽力始终针对最新版本进行编译。
- 您还需要将
ChartsRealm
作为依赖项添加。
第三方教程
视频教程
博客文章
- 在iOS 10中使用Swift 3和Realm以及Charts(Sami Korpela)
- 在Swift 3和iOS 10中创建折线图(Osian Smith)
- 使用Charts和Swift 3的开始设置和示例
- 使用Swift创建雷达图(David Piper)
- 在iOS中使用Charts框架和SwiftUI进行绘图(Evgeny Basisty)
- 使用iOS-Charts设置基本条形图(Penny Huang)
- iOS-Charts教程:使用自定义标记突出显示所选值(Penny Huang)
- 在SwiftUI出现之前在iOS中绘制图表(Gennady Stepanov)
想在这里看到你的教程吗?创建一个PR!
故障排除
无法编译?
- 请注意,从 CocoaPods 或 Carthage 安装预编译框架与复制源代码之间的区别。
- 请再次阅读 使用 部分。
- 在问题中搜索
- 尝试礼貌地在问题部分提出询问
其他问题 / 特性请求
- 在问题中搜索
- 尝试礼貌地在问题部分提出询问
安装 CocoaPods
在您的 Podfile 中添加 pod 'DGCharts'
。 "DGCharts" 是库的名称。
为了支持 Realm,请也添加 pod 'ChartsRealm'
。
注意: 并非正确的库,它指的是另一个人的不同项目。pod 'ios-charts'
安装 Carthage
DGCharts 现已包含 Carthage 预编译二进制文件。
github "danielgindi/Charts" == 5.1.0
github "danielgindi/Charts" ~> 5.1.0
为了构建新版本的二进制文件,使用 carthage build --no-skip-current && carthage archive Charts
。
Swift 包管理器安装
Swift 包管理器
dependencies: [
.package(url: "https://github.com/danielgindi/Charts.git", .upToNextMajor(from: "5.1.0"))
]
第三方绑定
Xamarin(由@Flash3001提供):iOS - GitHub/NuGet。Android - GitHub/NuGet。
帮助
如果你喜欢这里看到的内容,并且想支持这个存储库中正在进行的工作,你可以
注意: MPAndroidChart 的作者是这个库存在的理由,并在他自己的页面上接受 捐款。他理应得到这些!
问题和问题
如果你有任何疑问或问题,你应该
- 确保你使用的是库的最新版本。查看发行版部分。
- 研究Android版本文档Wiki
- 使用
ios-charts
标签在StackOverflow上搜索或打开问题 - 搜索已知问题已知问题以解决你的问题(包括开放和关闭的问题)
- 创建新问题(请 🔥 在创建重复问题之前搜索已知问题 🔥)
功能
核心功能
- 8种不同的图表类型
- 双轴缩放(触摸手势,单独的轴或捏合缩放)
- 拖动/平移(使用触摸手势)
- 组合图表(线条、柱状、散点、蜡烛、气泡等)
- 双轴(分离)
- 可定制的轴(包括x轴和y轴)
- 突出显示值(带可定制的弹出视图)
- 保存图表到相册/导出到PNG/JPEG
- 预定义颜色模板
- 图例(自动生成,可定制)
- 动画(上升动画,包括x轴和y轴)
- 限制线(提供额外信息,最大值等)
- 完全可定制(绘制、字体、图例、颜色、背景、手势、虚线等)
- 直接从Realm.io移动数据库中绘图(这里)
图表类型
当前截图来自原始存储库,因为它们渲染得完全一样 :-)
- 条形图(分组数据集)
- 水平条形图
- 饼图(带选择,...)
- 散点图(带有方块、三角形、圆形等...更多)
- 蜡烛图(用于金融数据)
- 气泡图(气泡覆盖的区域表示值)
- 雷达图(蜘蛛网图)
文档
目前不需要为iOS/tvOS/macOS版本编写文档,因为API与Android上的API有95%相同。
您可以在以下位置阅读官方MPAndroidChart文档:Wiki
或者您可以在Objective-C和Swift(ChartsDemo-iOS,以及macOS ChartsDemo-macOS)中查看Charts示例项目,并从中学习如何操作。
特别感谢
要感谢@liuxuan30、@petester42和@AlBirdie,他们的新功能、错误修复,以及在开源社区中的大量参与!你们对那些带着问题和问题来的人给予了巨大的帮助,没有你们,我无法回应所有这些问题。
我们惊人的赞助商
Debricked: 安全使用开源软件
许可
版权所有 2016 年 Daniel Cohen Gindi 及 Philipp Jahoda
遵循 Apache 许可证 2.0 版本(以下简称“许可证”);除非符合许可证要求,否则不得使用此文件。您可以在以下地址获取许可证副本:
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或经书面许可,否则在许可证下分发的软件按“原样”提供,恕不提供任何明示或暗示的保证。有关许可证中具体规定的权限和限制,请参阅许可证文本。