Charts 4.1.0

Charts 4.1.0

测试已测试
语言语言 SwiftSwift
许可证 Apache-2.0
发布最新发布Jun 2023
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 现在在一个独立的仓库中。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时
  • 您需要导入Bridging Header。通常它是“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(https://github.com/PhilJay/MPAndroidChart)的作者是这个库存在的理由,他正在他的页面上接受捐款。他值得得到这些!

问题和问题

如果你有任何问题或问题,你应该

  • 确保你使用的是库的最新版本。检查发布部分
  • 学习Android版本的文档Wiki
  • 使用ios-charts标签在stackoverflow中搜索或打开问题
  • 搜索您的问题(打开的或已关闭的)的已知问题
  • 创建新问题(请在🔥 在创建重复的问题之前先进行搜索) 🔥

功能

核心功能

  • 8种不同的图表类型
  • 双轴缩放(通过触摸手势、轴分开或捏合缩放)
  • 拖动/平移(通过触摸手势)
  • 组合图表(折线-、条形-、散点-、烛台-、气泡-)
  • 双轴(分开)
  • 自定义轴(X轴和Y轴)
  • 突出显示值(带有可定制的弹出视图)
  • 将图表保存到相册/导出到PNG/JPEG
  • 预定义颜色模板
  • 图例(自动生成,可定制)
  • 动画(在X轴和Y轴上构建动画)
  • 限制线(提供额外的信息,最大值,...)
  • 完全可定制(画笔、字体、图例、颜色、背景、手势、虚线,...)
  • 直接从Realm.io移动数据库中绘图(在此处

图表类型

当前屏幕截图是从原始存储库中获取的,因为它们渲染得完全一样 :-)

alt tag

  • 条形图(分组数据集)

alt tag

  • 水平条形图

alt tag

  • 饼图(包含选择功能,...)

alt tag

  • 散点图(包括正方形、三角形、圆形等,更多)

alt tag

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

alt tag

  • 气泡图(气泡覆盖面积表示值)

alt tag

  • 雷达图(蜘蛛网图)

alt tag

文档

目前iOS/tvOS/macOS版本的文档不必要,因为API与Android上相同达95%。
您可以在以下位置阅读官方MPAndroidChart文档:Wiki

或者您可以看到Objective-C和Swift的Charts示例项目(ChartsDemo-iOS,macOS的ChartsDemo-macOS),从中学习如何操作。

特别感谢

感谢 @liuxuan30@petester42@AlBirdie 对新功能、bug修复以及参与开源社区活动的大力支持!你们对那些带着问题和疑问来到这里的人都是极大的帮助,没有你们,我无法回复所有这些问题。

我们的精彩赞助商

Debricked:使用开源软件的安全性

debricked

许可证

版权所有 2016 Daniel Cohen Gindi & Philipp Jahoda

遵循Apache许可证版本2.0(“许可证”);除非您同意书面形式或适用法律要求,否则不得使用本文件,除非与许可证一致。您可以在以下位置获取许可证的副本:

http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,在许可证下分发的软件仅按“现状”分发给您,不提供任何明示或暗示的保证或条件。有关许可协议中对权限和限制的具体语言,请参阅许可证。