python画环形图的方法


Posted in Python onMarch 25, 2020

本文实例为大家分享了python画环形图的具体代码,供大家参考,具体内容如下

import os
 
import pandas as pd
import matplotlib.pyplot as plt
import random
import numpy as np
 
 
# 获取渐变色的list
def gradual(number):
 colors = []
 h = 0.00001
 gradual2 = random.uniform(0, 1)
 r = gradual2
 if gradual2 >= 0.5:
  g = h
  b = gradual2
 else:
  g = gradual2
  b = h
 colors.append((r, g, b, 1))
 for i in range(number - 1):
  # 大于0.5 则为绿色渐变,小于则为蓝色渐变
  if gradual2 >= 0.5:
   g = 1 if ((1 - h) / number) > 1 else (g + (1 - h) / number)
  else:
   b = 1 if ((1 - h) / number) > 1 else (b + (1 - h) / number)
  colors.append((r, g, b, 1))
 return colors
 
 
# 获取绿色的个数,standardRedIndex为要将那个颜色改为红色
def listGreen(number, standardRedIndex):
 colors = []
 for i in range(number):
  if i == standardRedIndex - 1:
   colors.append('r')
  else:
   colors.append('#6CAD4F')
 return colors
 
 
# 画环形图
def circularGraph(outerData, innerData, labels, standardRedIndex):
 data = pd.DataFrame([outerData, innerData], columns=labels)
 # 设置字体这样才可以显示中文
 plt.rcParams['font.sans-serif'] = 'Microsoft YaHei'
 plt.rcParams['axes.unicode_minus'] = False
 plt.figure(figsize=(8, 5))
 colors = gradual(len(labels))
 # 数据内环
 plt.pie(data.iloc[1, :], radius=0.65, wedgeprops=dict(width=0.3, edgecolor='w'), colors=colors)
 # 数据外环
 plt.pie(data.iloc[0, :], radius=1, wedgeprops=dict(width=0.3, edgecolor='w'),
   colors=listGreen(len(labels), standardRedIndex))
 # 获取ax label
 ax = plt.subplot(1, 1, 1)
 # loc是位置,bbox_to_anchor是位置坐标,borderaxespad将图例放外面 frameon=False去掉图例边框
 # bbox_to_anchor 的y坐标
 y = -1 / 40 * len(labels) + 0.5
 ax.legend(labels, loc=4, bbox_to_anchor=(1.3, y), borderaxespad=0., frameon=False)
 plt.show()
 
 
circularGraph([30, 30, 20, 40, 20, 20, 40, 20, 20, 40, 20], [30, 30, 20, 40, 20, 20, 40, 20, 20, 40, 20],
    ['甲硫杆菌', '霍尔德曼氏菌属', 'Faecali菌属', '瘤胃菌属', 'Faecali菌属', 'Faecali菌属', '瘤胃菌属', 'Faecali菌属', 'Faecali菌属', '瘤胃菌属', 'Faecali菌属'], 3)

python画环形图的方法

更多精彩内容请点击专题: 《python图片处理操作》

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Linux下使用python调用top命令获得CPU利用率
Mar 10 Python
在Python中使用SimpleParse模块进行解析的教程
Apr 11 Python
利用Python生成文件md5校验值函数的方法
Jan 10 Python
python3使用SMTP发送HTML格式邮件
Jun 19 Python
python实现换位加密算法的示例
Oct 14 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
Apr 05 Python
Python opencv实现人眼/人脸识别以及实时打码处理
Apr 29 Python
在windows下使用python进行串口通讯的方法
Jul 02 Python
python使用requests.session模拟登录
Aug 09 Python
Python操作Elasticsearch处理timeout超时
Jul 17 Python
python调用百度AI接口实现人流量统计
Feb 03 Python
python实现的人脸识别打卡系统
May 08 Python
Python面向对象魔法方法和单例模块代码实例
Mar 25 #Python
Python语法垃圾回收机制原理解析
Mar 25 #Python
python实现Pyecharts实现动态地图(Map、Geo)
Mar 25 #Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
Mar 25 #Python
Django查询优化及ajax编码格式原理解析
Mar 25 #Python
python使用pyecharts库画地图数据可视化的实现
Mar 25 #Python
python实现3D地图可视化
Mar 25 #Python
You might like
Ping服务的php实现方法,让网站快速被收录
2012/02/04 PHP
PHP 7的一些引人注目的新特性简单介绍
2015/11/08 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
2016/03/20 PHP
PHP 5.6.11中CURL模块问题的解决方法
2016/08/08 PHP
浅析JavaScript中的同名标识符优先级
2013/12/06 Javascript
javascript异步编程的4种方法
2014/02/19 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
JavaScript中setUTCFullYear()方法的使用简介
2015/06/12 Javascript
js控制TR的显示隐藏
2016/03/04 Javascript
分享一道关于闭包、bind和this的面试题
2017/02/20 Javascript
Jquery把获取到的input值转换成json
2017/05/15 jQuery
手把手教你把nodejs部署到linux上跑出hello world
2017/06/19 NodeJs
jquery获取transform里的值实现方法
2017/12/12 jQuery
js中的reduce()函数讲解
2019/01/18 Javascript
jquery轻量级数字动画插件countUp.js使用详解
2019/10/17 jQuery
简单了解Vue + ElementUI后台管理模板
2020/04/07 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
[04:52]2015国际邀请赛LGD战队晋级之路
2015/08/14 DOTA
Python实现读取目录所有文件的文件名并保存到txt文件代码
2014/11/22 Python
python轻松实现代码编码格式转换
2015/03/26 Python
Python实现的NN神经网络算法完整示例
2018/06/19 Python
django认证系统实现自定义权限管理的方法
2018/07/16 Python
对Pytorch神经网络初始化kaiming分布详解
2019/08/18 Python
python函数定义和调用过程详解
2020/02/09 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
使用Python实现批量ping操作方法
2020/05/06 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
python如何将图片转换素描画
2020/09/08 Python
英国最大的香水商店:The Fragrance Shop
2018/07/06 全球购物
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/01/13 面试题
标准自荐信范文
2014/01/29 职场文书
运动会800米加油稿
2014/02/22 职场文书
信息管理与信息系统专业求职信
2014/06/21 职场文书
支部书记四风问题自我剖析材料
2014/09/29 职场文书
2015年学校团委工作总结
2015/05/26 职场文书
老舍《猫》教学反思
2016/02/17 职场文书