上篇文章已经讲述了折线图的用法这边文章主要来谈饼状图。

其实Charts难的部分主要在于配置,所以同样主要说说他的配置。

pieGraphView.setExtraOffsets(left: 10, top: 0, right: 60, bottom: 0) // 饼状图距离边缘的间隙

pieGraphView.usePercentValuesEnabled = true // 是否根据所提供的数据, 将显示数据转换为百分比格式

pieGraphView.dragDecelerationEnabled = false // 拖拽饼状图后是否有惯性效果

// viewPie?.drawSliceTextEnabled = false // 是否显示区块文本

// pieGraphView.drawSlicesUnderHoleEnabled = false

pieGraphView.chartDescription?.enabled = false // 图形描述

pieGraphView.drawCenterTextEnabled = false // 是否显示中间文字

pieGraphView.drawHoleEnabled = true // 饼状图是否是空心

pieGraphView.holeRadiusPercent = 0.5 // 空心半径占比

pieGraphView.transparentCircleRadiusPercent = 0.52 //半透明空心半径占比

pieGraphView.rotationEnabled = true // 旋转指示

pieGraphView.rotationAngle = 0.0

pieGraphView.highlightPerTapEnabled = false // 点击放大效果

// 图例

let legend = self.pieGraphView.legend

legend.maxSizePercent = 1 // 图例在饼状图中的大小占比, 这会影响图例的宽高

legend.formToTextSpace = 10 // 文本间隔

legend.horizontalAlignment = .right // 图例在饼状图中的位置

legend.verticalAlignment = .bottom // 图例在饼状图中的位置

legend.orientation = .vertical // 图例在饼状图中的位置

legend.font = UIFont.systemFont(ofSize: 12)

legend.textColor = UIColor.gray

// 数据

var yValues: [PieChartDataEntry] = [] // 所占比例

var colors: [UIColor] = [] // 区块颜色

for i in 0..

if (i + 1) % 6 == 0 {

colors.append(UIColor.colorWithHex("11bc5e"))

} else if (i + 1) % 5 == 0 {

colors.append(UIColor.colorWithHex("3c6af1"))

} else if (i + 1) % 4 == 0 {

colors.append(UIColor.colorWithHex("f94495"))

} else if (i + 1) % 3 == 0 {

colors.append(UIColor.colorWithHex("feca14"))

} else if (i + 1) % 2 == 0 {

colors.append(UIColor.colorWithHex("ff842d"))

} else {

colors.append(UIColor.colorWithHex("1ec2ff"))

}

if type == 1 {

if modelList[i].price_flag == 1 {

yValues.append(PieChartDataEntry(value: modelList[i].price_perctg, label: modelList[i].brand_name))

} else {

yValues.append(PieChartDataEntry(value: modelList[i].price_perctg, label: modelList[i].brand_name))

}

} else {

yValues.append(PieChartDataEntry(value: modelList[i].number_perctg, label: modelList[i].brand_name))

}

}

let dataSet = PieChartDataSet(values: yValues, label: "")

dataSet.valueLinePart1OffsetPercentage = 0.8 // 折线中第一段起始位置相对于区块的偏移量, 数值越大, 折线距离区块越远

dataSet.valueLinePart1Length = 0.4 // 折线中第一段长度占比

dataSet.valueLinePart2Length = 0.6 // 折线中第二段长度最大占比

dataSet.valueLineWidth = 1 //折线的粗细

dataSet.valueLineColor = UIColor.gray //折线颜色

dataSet.xValuePosition = .outsideSlice //名称位置

dataSet.yValuePosition = .insideSlice //数据位置

dataSet.drawIconsEnabled = false

dataSet.sliceSpace = 2.0 // 相邻区块之间的间距

dataSet.colors = colors // 设置区块颜色

let pieChartData = PieChartData(dataSet: dataSet)

pieChartData.setValueFormatter(DigitValueFormatter())//设置百分比

pieChartData.setValueTextColor(UIColor.gray) //字体颜色为白色

pieChartData.setValueFont(UIFont.systemFont(ofSize: 11))//字体大小

pieGraphView.data = pieChartData // 将配置及数据添加到表中

很可惜,我们的需求是要百分比显示在内部,数据显示在外部,图例显示品牌,还没有找到很好的办法,你有么?我能想到的是图例覆盖一层view去展示......

android饼状图简书,Charts-饼状图相关推荐

  1. android饼状图简书,自定义 view 练手 - 简单的饼状图

    今天咱们来一个例子练练手,饼状图这样的图表算是最好的了,复杂的话可以很复杂, 采用 surfaceview + 动画 可以使用很优秀的观感体验:简单的话可以很简单,仅仅画出图来就行,不用考虑动画啥的 ...

  2. android中设置lmargin简书,超详细React Native实现微信好友/朋友圈分享功能-Android/iOS双平台通用...

    (一)前言 本文主要会涉及到以下内容: 微信开发者应用申请审核 安装配置微信分享库 微信好友/朋友圈功能实现 (二)应用申请审核 首先大家需要去微信开发平台去注册账号并且创建一个移动应用.(地址:ht ...

  3. python excel 饼图 简书_Python可视化29_matplotlib-饼图(pie)

    本文详细介绍python 使用matplotlib.pyplot.pie绘制饼图(pie) 本文快速预览 更多好文,欢迎随缘关注@ image image 目录 默认参数 修改配色 饼图某部分突出or ...

  4. android源码编译 简书,android学习笔记之源码编译

    编译环境 1.需要Ubuntu 64bit,建议Ubuntu14.04 64-bit 2.安装openJDK7 $ sudo apt-get update $ sudo apt-get install ...

  5. android虹软人脸识别简书,Android 用虹软SDK做人脸识别

    人脸识别第三方sdk比较多,但是大多都是收费的或者限制次数什么的,虹软的效果还不错,全免费也不需要联网 V1.2版本使用和快速集成:https://www.jianshu.com/p/8dee89ec ...

  6. android面试准备中高级简书!一起刷完了这份1307页的安卓面试宝典吧,已拿到offer

    开头 Android开发,假如开始没有任何的开发经验的话, 千万不要着急,不要想着在短时间内就把一个语言学习好, 因为你之前没有任何的学习经验, 在这个过程中需要有耐心地学习完JAVA的基础知识, 然 ...

  7. android 获取电量百分比 简书,使用手机不再纠结——隐藏电量百分比

    一周之前,在豌豆荚一览里查看到Appy Geek的一篇文章,其主旨是隐藏电量百分百后生活变得更好了! 文章很短,但是我认为是很长一段时间里我看过的最棒的生活指南之类的文章. 这招只适合像我这种手机狂热 ...

  8. android音乐播放器简书,打造 Android 网络音乐播放器 [2]

    前言 在上一篇中,我们把播放器的基本播放功能实现了,今天我们就把基本的界面实现以下吧. 目标 界面的话没打算实现太复杂的,就做现在比较流行的 Drawer+Tab+ViewPager 这种界面.下面给 ...

  9. android沉浸式模式简书,Android 沉浸式模式与常见状态栏和导航栏效果

    Android沉浸式模式 官方称沉浸式状态栏为沉浸式模式. 什么是沉浸式? 沉浸式就是让人专注当前的(由设计者营造)情境下感到愉悦和满足,而忘记真实的情境. 什么是Android中的沉浸式? 当启用该 ...

最新文章

  1. C++ 复制构造函数或者拷贝构造函数
  2. 深蓝学院第二章:基于全连接神经网络(FCNN)的手写数字识别
  3. 跟我一起学perl系统管理脚本 第3课
  4. 火出圈的1688,能扣响C2M的扳机吗?
  5. 电大2007计算机机考专科试题,中央电大2007-2008学年度第一学期期末考试计算机网络专业计算机网络试题2008年1月...
  6. android 布局点击效果,如何让LinearLayout也有类似Button的点击效果?
  7. Swift--基本运算符
  8. java自动化_作为测试工程师进阶自动化选Java还是Python?
  9. 一个单片机ADC的挖坑填坑之旅
  10. 在ASP.NET中防止注入攻击[翻译]
  11. python笔记之Cmd模块
  12. 技术人成长路径之我见
  13. Activiti工作流的流转任务和结束任务
  14. 使用java压缩文件成zip——三种方式压缩文件速度对比
  15. oracle用户 expire,Oracle用户expired
  16. Ubuntu中禁用触摸板
  17. 中文乱码
  18. 数据库应用——MyCat代理MySQL集群
  19. java h d,Java HijrahChronology zonedDateTime(TemporalAccessor)用法及代码示例
  20. java 使用poi HSSFWorkbook导出xls文件 office打不开,提示文件损坏,wps能打开。

热门文章

  1. 技巧 | OpenCV中如何绘制与填充多边形
  2. 如何在OpenCV中使用YOLO
  3. Unity插件之NGUI学习(4)—— 创建UI2DSprite动画
  4. jquery each
  5. Flume的安装与配置
  6. 新概念机房运维监控三大新理念
  7. Oracle命令(一):Oracle登录命令
  8. 2007年100款最佳安全工具谱
  9. 想要学习Python爬虫的你,真的了解爬虫最基础的知识储备吗?
  10. 【python教程入门学习】Pandas是什么