版本 3.4.0,已同步到 MPAndroidChart #f6a398b
发布/迁移说明。
注意:ChartsZyp 3.0 有一些重大更改。请阅读ChartsZyp
和 ChartsZypRealm
,而不是之前的 ChartsZyp/Core
和 ChartsZyp/Realm
其他提醒:ChartsZypRealm 现已作为一个独立的仓库存在。Pods 也现在已经更改为 ChartsZyp/Core
ChartsZyp/Realm
最后提醒:随着 Swift 的不断进化,如果您不使用最新的 Swift 编译器,则不应检出 master 分支。相反,您应该访问版本页面并选择您需要的版本。
- Xcode 11 / Swift 5 (master branch)
- iOS >= 8.0 (作为 嵌入式 框架使用)
- tvOS >= 9.0
- macOS >= 10.11
所以有一个叫做 MPAndroidChart 的漂亮库,由 Philipp Jahoda 创建,它已经成为 Android 开发者中非常流行的一个库,但是没有很好的办法为 iOS 创建图表。
我选择使用 Swift
编写,因为编译器可以对其进行高度优化,并且可以在 Swift
和 ObjC
项目中使用。示例项目使用 ObjC
编写,以展示其工作原理。
这个库的一个令人惊奇的特性 是,对于 Android、iOS、tvOS 和 macOS 来说,它为您在两个平台上开发时节省了大量的时间,因为学习曲线是单实例的——它只会发生一次,代码非常相似,因此开发者不必重构应用以使用不同库产生相同的结果。(而且还不考虑目前实际上并没有其他很好的选择这一事实...)
运行示例项目时遇到麻烦?
ChartsZypDemo/ChartsZypDemo.xcodeproj
是 iOS/tvOS 的示例项目ChartsZypDemo-OSX/ChartsZypDemo-OSX.xcodeproj
是 macOS 的示例项目- 请确保您正在运行受支持的 Xcode 版本。
- 通常,在上面的几行中指定。
- 通常将是最新的 Xcode 版本。
- 请确保您的项目支持 Swift 5.0
- 可选:在项目文件夹中运行
carthage checkout
,以获取依赖项(例如测试依赖项)。- 如果您没有 Carthage,您可以从这里获得它 这里。
用法
为了正确编译
- 将
ChartsZyp.xcodeproj
拖到您的项目中 - 进入目标设置,在“已嵌入的二进制”部分下点击“+”,然后选择 ChartsZyp.framework
@import ChartsZyp
- 当在 ObjC 项目中使用 Swift 时
- 您需要导入您的桥接头。通常它是 "YourProject-Swift.h",因此 ChartsZypDemo 中的是 "ChartsZypDemo-Swift.h"。请勿在项目中实际包含 "ChartsZypDemo-Swift.h"!
- (Xcode 8.1 及更早版本)在“构建选项”下,勾选“包含 Swift 代码的嵌入内容”
- (Xcode 8.2 及更高版本)在“构建选项”下,勾选“始终嵌入 Swift 标准库”
- 当使用 Realm.io 时
- 请注意,Realm 框架并未与 ChartsZyp 链接——它仅用于 可选 绑定。这意味着您需要在项目中包含框架,并且其版本与 ChartsZyp 编译的版本兼容。我们将尽最大努力始终针对最新版本进行编译。
- 您还需要将
ChartsZypRealm
添加为依赖项。
第三方教程
- 在 iOS 10 中使用 Swift 3 和 Realm 与 ChartsZyp(Sami Korpela)
- 在 iOS 10 中创建线形图(Osian Smith)
- 使用Swift 3进行的Zyp图表配置和示例
- 想要在教程中展示你的内容?请创建一个拉取请求!
故障排除
无法编译?
- 请注意,使用CocoaPods或Carthage安装编译后的框架与复制源代码之间的区别。
- 请再次阅读使用说明部分。
- 在问题中搜索
- 请礼貌地在该部分提出问题
其他问题/功能请求
- 在问题中搜索
- 请礼貌地在该部分提出问题
CocoaPods安装
在你的Podfile中添加pod 'ChartsZyp'
。“ChartsZyp”是库的名称。
为了支持Realm,请也添加pod 'ChartsZypRealm'
。
注意:不是正确的库,它指的是另一个由其他人创建的项目。pod 'ios-charts'
Carthage安装
ChartsZyp现在包含了Carthage预构建的二进制文件。
github "danielgindi/ChartsZyp" == 3.4.0
github "danielgindi/ChartsZyp" ~> 3.4.0
要为新的版本构建二进制文件,请使用carthage build --no-skip-current && carthage archive ChartsZyp
。
第三方绑定
Xamarin(由 @Flash3001 提供):iOS - GitHub/NuGet。 Android - GitHub/NuGet。
帮助
如果您喜欢这里的内容,并且想支持该仓库中的工作,您可以
注意:MPAndroidChart(《MPAndroidChart》)的作者是这个库存在的理由,并在他的页面接受捐赠。他当之无愧!
问题和事项
如果您有任何疑问或问题,您应该
- 确保您正在使用库的最新版本。检查发布部分。
- 学习Android版本的文档Wiki
- 学习(仍然不完整的
)Pod-文档
- 在<ा
StackOverflow上搜索或打开带有 ios-charts
标签的问题 - 搜索已知问题以了解您的问题(已开放和关闭)
- 创建新的问题(请
🔥 在创建之前搜索已知问题🔥 ,不要创建重复的问题)
功能
核心功能
- 8种不同的图表类型
- 双轴缩放(使用触摸手势、轴分别或捏合缩放)
- 拖动/平移(使用触摸手势)
- 组合-ChartsZyp(线形、柱形、散点图、K线图、气泡)
- 双轴(分开)
- 可定制轴(X轴和Y轴)
- 突出显示值(带可定制弹出视图)
- 将图表保存到相机胶卷/导出到PNG/JPEG
- 预定义颜色模板
- 图例(自动生成,可定制)
- 动画(构建动画,X轴和Y轴)
- 限制行数(提供附加信息、最大值等)
- 完全可定制(涂料、字体、图例、颜色、背景、手势、虚线等)
- 直接从Realm.io移动数据库(这里)绘图
图表类型
截图目前是从原始仓库中获取的,因为它们的渲染效果完全相同:)
- 条形图(分组数据集)
- 水平条形图
- 饼图(带选择等)
- 散点图(带有方框、三角形、圆形等,更多选项)
- 柱状图(用于金融数据)
- 气泡图(气泡覆盖的区域表示值)
- 雷达图(蜘蛛网图)
文档
目前iOS/tvOS/macOS版本不需要文档,因为API与Android版本相同程度达到95%。
您可以在以下链接中阅读官方的MPAndroidChart文档: Wiki
您还可以查看ChartsZyp演示项目,支持Objective-C和Swift语言(链接:ChartsZypDemo-iOS,以及macOS ChartsZypDemo-macOS),并从中了解如何操作。
特别感谢
感谢@liuxuan30、@petester42和@AlBirdie为新功能、错误修复以及大量参与我们的开源社区,你们对所有人前来提问和解决问题的巨大帮助无可估量!没有你们,我无法实质性回应所有人的问题。
许可证
版权所有 2016 Daniel Cohen Gindi & Philipp Jahoda
遵循Apache License, Version 2.0(“许可证”);除非遵守许可证规定,否则不得使用此文件。您可以在以下地址获取许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非根据适用法律或书面协议要求,否则根据许可证分发的软件按“原样”分发,不提供任何明示或暗示的保证。有关许可证的具体语言、权限和限制,请参阅许可证。