版本 4.0.0,同步到 MPAndroidChart #f6a398b
发布/迁移说明。
提醒:Charts 3.0 有一些破坏性更改。请阅读ChartsRealm 中。现在 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时
- 你需要导入你的桥接头。通常它是“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 的图表示例
- 在 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的作者(MPAndroidChart)是此库存在的原因,他接受捐款在其页面上。他应得这些!
问题 & 问题
如果您有问题或问题,您应该
- 确保您正在使用库的最新版本。查看 发布部分。
- 研究Android版本的 文档Wiki
- 在 stackoverflow 以
ios-charts
标签查找或打开问题 - 在 已知问题 中查找您的问题(打开和关闭的)
- 创建新问题(请在
🔥 搜索已知问题之前🔥 ,请勿创建重复的问题)
功能
核心功能
- 8 种不同的图表类型
- 两个轴的缩放(通过触摸手势、分别或捏合缩放轴)
- 拖动/平移(通过触摸手势)
- 组合图表(线型、条形、散点、蜡烛、泡沫)
- 双轴(分开的)
- 可定制的轴(x 轴和 y 轴都是)
- 突出显示值(带有可定制的弹出视图)
- 将图表保存到相册或导出为 PNG/JPEG
- 预定义的颜色模板
- 图例(自动生成,可自定义)
- 动画(建构动画,x 轴和 y 轴都适用)
- 限制线(提供额外信息,最大值等)
- 完全可自定义(绘制图形、字体、图例、颜色、背景、手势、虚线等)
- 直接从 Realm.io 移动数据库 这里 绘制数据
图表类型
当前截图来自原始存储库,因为它们的渲染完全相同 :-)
- 条形图(分组数据集)
- 水平条形图
- 饼图(可选取...)
- 散点图(带有方块、三角形、圆圈...等更多)
- 蜡烛图(适用于金融数据)
- 气泡图(气泡覆盖的区域表示价值)
- 雷达图(蜘蛛网图)
文档
目前iOS/tvOS/macOS版本无需文档,因为API与Android版本相同高达95%。
您可以在以下位置查看官方的MPAndroidChart文档:[Wiki](https://github.com/PhilJay/MPAndroidChart/wiki)
或者您可以看到Objective-C和Swift版本的Charts示例项目([ChartsDemo-iOS](https://github.com/danielgindi/Charts/tree/master/ChartsDemo-iOS) 和 [ChartsDemo-macOS](https://github.com/danielgindi/Charts/tree/master/ChartsDemo-macOS)),并从中了解如何使用。
特别感谢
要感谢 @liuxuan30,@petester42 和 @AlBirdie 对新特性和 bug 修复的贡献,以及在我们开源社区中的大量参与!你们对有问题和疑问的人来说是一大帮助,没有你们,我无法对所有人做出回应。
我们惊人的赞助商
Debricked:开源安全使用
授权
版权所有 2016 Daniel Cohen Gindi & Philipp Jahoda
遵循Apache License 2.0(“许可证”);除非适用法律规定或书面同意,否则不许可使用此文件。可以在以下位置获取许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非法律规定或书面承诺,否则按照许可证分发的软件以“按原样”基础上分发,不提供任何明示或暗示的保证或条件。有关许可权的具体语言、权限和限制,请参阅许可证。