图表 4.1.0

Charts 4.1.0

测试经过测试
语言语言 SwiftSwift
许可证 Apache-2.0
发布最后发布2023年6月
SPM支持 SPM

Pierre-Marc AiroldiDaniel Cohen Gindiliuxuan30 维护。



Charts 4.1.0

  • Daniel Cohen Gindi 和 Philipp Jahoda

版本 4.0.0,同步到 MPAndroidChart #f6a398b

alt tag Supported Platforms Releases Latest pod release Carthage compatible Build Status codecov Join the chat at https://gitter.im/danielgindi/Charts

提醒:Charts 3.0 有一些破坏性更改。请阅读 发布/迁移说明

另一个提醒:ChartsRealm 现在在单独的仓库 ChartsRealm 中。现在 Pods 也已更名为 ChartsChartsRealm,而不是 Charts/CoreCharts/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编写,因为它可以由编译器高度优化,并且可以在SwiftObjC项目中使用。演示项目使用ObjC编写,以展示其如何工作。

这个库现在的一个令人惊叹的功能是,对于Android、iOS、tvOS和macOS,它能节省您在两个平台上开发时的时间,因为学习曲线是单例的——它只发生一次,代码保持非常相似,因此开发者不必重新发明应用以使用不同的库产生相同的结果。(而且还没有考虑当前实际上没有其他很好的选择这一事实……)

运行演示有困难吗?

  • ChartsDemo/ChartsDemo.xcodeproj是iOS/tvOS的演示项目
  • ChartsDemo-OSX/ChartsDemo-OSX.xcodeproj是macOS的演示项目
  • 确保您正在运行受支持的Xcode版本。
    • 通常在这里上面几行会指定。
    • 在大多数情况下,它将是最新版本的Xcode。
  • 确保您的项目支持Swift 5.0
  • 可选:在项目文件夹中运行carthage checkout,以获取依赖关系(例如测试依赖关系)。
    • 如果您没有Carthage - 您可以从这里获取:这里

使用方法

为了正确编译

  1. Charts.xcodeproj 拖动到你的项目中
  2. 进入你的目标设置,在“框架、库和嵌入内容”部分下点击“+”,然后选择 Charts.framework
  3. @import Charts
  4. 当在一个ObjC项目中使用Swift时
  • 你需要导入你的桥接头。通常它是“YourProject-Swift.h”,所以在ChartsDemo中是“ChartsDemo-Swift.h”。不要试图真正在项目中包含“ChartsDemo-Swift.h” :-)
  • (Xcode 8.1及以前版本)在“构建选项”下,勾选“嵌入内容包含Swift代码”
  • (Xcode 8.2及以后版本)在“构建选项”下,勾选“始终嵌入Swift标准库”
  1. 当使用 Realm.io
    • 请注意,Realm框架并未与Charts链接 - 它只是为了可选绑定。这意味着你需要将框架添加到项目中,并且版本需要与Charts编译的版本兼容。我们将尽最大努力始终编译最新版本。
    • 你还需要添加 ChartsRealm 作为依赖项。

第三方教程

视频教程

博客文章

想要你的教程在这里展示?创建一个 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 / NuGetAndroid - GitHub / NuGet

帮助

如果您喜欢这里看到的内容,并想支持在这个存储库中进行的作业,您可以

  • 贡献代码、问题以及拉取请求
  • 让人们知道这个库的存在(🔥传播消息🔥)
  • Donate(您可以买我一杯啤酒,或者您可以请我吃饭:-)

注意:MPAndroidChart的作者(MPAndroidChart)是此库存在的原因,他接受捐款在其页面上。他应得这些!

问题 & 问题

如果您有问题或问题,您应该

  • 确保您正在使用库的最新版本。查看 发布部分
  • 研究Android版本的 文档Wiki
  • stackoverflowios-charts 标签查找或打开问题
  • 已知问题 中查找您的问题(打开和关闭的)
  • 创建新问题(请在🔥 搜索已知问题之前 🔥,请勿创建重复的问题)

功能

核心功能

  • 8 种不同的图表类型
  • 两个轴的缩放(通过触摸手势、分别或捏合缩放轴)
  • 拖动/平移(通过触摸手势)
  • 组合图表(线型、条形、散点、蜡烛、泡沫)
  • 双轴(分开的)
  • 可定制的轴(x 轴和 y 轴都是)
  • 突出显示值(带有可定制的弹出视图)
  • 将图表保存到相册或导出为 PNG/JPEG
  • 预定义的颜色模板
  • 图例(自动生成,可自定义)
  • 动画(建构动画,x 轴和 y 轴都适用)
  • 限制线(提供额外信息,最大值等)
  • 完全可自定义(绘制图形、字体、图例、颜色、背景、手势、虚线等)
  • 直接从 Realm.io 移动数据库 这里 绘制数据

图表类型

当前截图来自原始存储库,因为它们的渲染完全相同 :-)

  • LineChart(带有图例,简单设计) alt tag

  • LineChart(带有图例,简单设计) alt tag

  • 折线图(曲线线) alt tag

  • 折线图(梯度填充) alt tag

  • 组合图(条形图和折线图) alt tag

  • 条形图(带有图例,简单设计)

alt tag

  • 条形图(分组数据集)

alt tag

  • 水平条形图

alt tag

  • 饼图(可选取...)

alt tag

  • 散点图(带有方块、三角形、圆圈...等更多)

alt tag

  • 蜡烛图(适用于金融数据)

alt tag

  • 气泡图(气泡覆盖的区域表示价值)

alt tag

  • 雷达图(蜘蛛网图)

alt tag

文档

目前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:开源安全使用

debricked

授权

版权所有 2016 Daniel Cohen Gindi & Philipp Jahoda

遵循Apache License 2.0(“许可证”);除非适用法律规定或书面同意,否则不许可使用此文件。可以在以下位置获取许可证副本:

https://apache.ac.cn/licenses/LICENSE-2.0

除非法律规定或书面承诺,否则按照许可证分发的软件以“按原样”基础上分发,不提供任何明示或暗示的保证或条件。有关许可权的具体语言、权限和限制,请参阅许可证。