python画环形图的方法
2020-04-02 12:08
627 查看
本文实例为大家分享了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】dict使用方法和快捷查找
- python有三种导入模块的方法
- Python中的OOP - 类中的几种函数或方法总结
- Python3.6+Django1.11用pip安装xadmin时报'gbk' codec can't decode byte 0xa4 in position 3444错的解决方法
- Python 内编写类的各种技巧和方法
- python字符串排序方法
- python筛选出两个文件中重复行的方法
- python 继承 及调用被重写的父类方法(未被绑定的方法)
- python抓取百度首页的方法
- python学习(四)----文件相关方法
- 用python生成1000个txt文件的方法
- Python面向对象编程2——装饰器、类方法、静态方法
- python random使用方法
- Python中isnumeric()方法的使用简介
- Python实现Sqlite将字段当做索引进行查询的方法
- python文件和目录操作方法大全(含更改文件夹下所有文件名称的实例)
- 笨方法学习Python-习题40: 字典, 可爱的字典
- python中自定义类对象json字符串化的方法
- python中的注释方法
- 20191114Python打卡习--dict,set和String常用方法