绘制饼状图的基本语法

创建数组 x 的饼图,每个楔形的面积由 x / sum(x) 决定;

若 sum(x) < 1,则 x 数组不会被标准化,x 值即为楔形区域面积占比。注意,该种情况会出现 1 - sum(x) 的空楔形

若 sum(x) > 1,则由 x[ i ] / sum(x) 算出每一个楔形占比,饼图360°区域均被填充。

下图为sum(x) < 1 的情况,存在空楔形区域。

1 语法

pie(x, explode=None, labels=None, colors=None,
    autopct=None, pctdistance=0.6, shadow=False,
    labeldistance=1.1, startangle=None, radius=None,
    counterclock=True, wedgeprops=None, textprops=None,
    center=(0, 0), frame=False, rotatelabels=False,
    hold=None, data=None
    )

x - 创建饼状图的数组

explode - array-like, optional, default: None;偏离每个楔形的半径的分数。若非None,则 数组长度 = len(x),

labels - list, optional, default: None;为每个楔形添加标签

color - array-like, optional, default: None;若无,则用currently active cycle中的颜色添加

autopct - None (default), string, or function, optional;用于数值标记楔形的数值 / 字符串 / 函数,其中标签置于楔形内部;若None,则不现实楔形块占比数值,可以是整数( ' %d%%' )、浮点数( ' %2.3f %%' )、字符串( ' %s %%' )、函数。

pctdistance - float, optional, default: 0.6 ;描述autopct 值在楔形块的位置;当pctdistance = 0,所有autopct值均位于楔形块的 ‘ 尖端 ’ 位置,当为1,则位于楔形块的弧线位置,当大于1时,则会成比例远离尖端位置,

当 pctdistance = 0时,一个饼状图特例。

shadow - bool, optional, default: False;为饼状图画阴影(True)

labeldistance : float, optional, default: 1.1;描述label标签的在楔形块上的位置,确切地说,与圆心无关,而相对于楔形块的 “尖端 ” 的位置关系

startangle : float, optional, default: None;若不是None,则饼图的起点为 x 轴并逆时针旋转 angle 度

radius : float, optional, default: None;饼图的半径,若为None时,则默认为1

counterclock : bool, optional, default: True;指定分数方向,逆时针 (True) 或顺时针

wedgeprops : dict, optional, default: None;描述楔形边界线宽度值,参数形式``wedgeprops = {'linewidth': 3}``楔形边界线宽度为3

textprops : dict, optional, default: None;传递给文本对象的字典参数

center :  list of float, optional, default: (0, 0);图标的中心为,默认(0,0),也可以是两个标量的序列(sequence  of 2 scalars)

frame : bool, optional, default: False;若True,则绘制轴框架

texts : list;标签列表,class:`matplotlib.text.Text` instances实例.

autotexts : list;基于数字标签(numeric labels)的class:`~matplotlib.text.Text`实例列表,仅当参数* autopct *不是* None *时才会返回。

2 示例

import matplotlib.pyplot as plt

values = [13.23, 9.29, 5.34, 4.48, 3.01,2.97]
spaces = [0.01, 0.01, 0.01, 0.08, 0.01,0.01]
labels = ['Java', 'C', 'C++', 'Python', 'C#','Js']
colors = ['b', 'orangered', 'g', 'violet','gold','#EED2EE']

plt.figure('Pie', facecolor='lightgray')
plt.title('Pie', fontsize=20)
plt.pie(values, spaces, labels, colors, '%d%%',shadow=True, startangle=90)
# 让两个轴等比例缩放
# 如无该代码段,则为椭圆形饼状图
plt.axis('equal')
plt.show()

各语言占比数据为2017年11月前6个

基于matplotlib的数据可视化 - 饼状图pie的更多相关文章

  1. 基于matplotlib的数据可视化 - 三维曲面图gca

    1 语法 ax = plt.gca(projection='3d')ax.plot_surface(x,y,z,rstride=行步距,cstride=列步距,cmap=颜色映射) gca(**kwa ...

  2. Matplotlib基本图形之饼状图

    Matplotlib基本图形之饼状图 饼状图特点: 饼状图显示一个数据系列中各项大小与各项总和的比例饼状图的数据点显示为整个饼状图的百分比 示例代码 import os import time imp ...

  3. 基于matplotlib的数据可视化 - 笔记

    1 基本绘图 在plot()函数中只有x,y两个量时. import numpy as np import matplotlib.pyplot as plt # 生成曲线上各个点的x,y坐标,然后用一 ...

  4. 基于matplotlib的数据可视化 - 热图imshow

    热图: Display an image on the axes. 可以用来比较两个矩阵的相似程度 mp.imshow(z, cmap=颜色映射,origin=垂直轴向) imshow( X, cma ...

  5. 基于matplotlib的数据可视化 -

    matplotlib.pyplot(as mp or as plt)提供基于python语言的绘图函数 引用方式: import matplotlib.pyplot as mp / as plt 本章 ...

  6. 基于matplotlib的数据可视化 - 等高线 contour 与 contourf

    contour 与contourf 是绘制等高线的利器. contour  - 绘制等高线 contourf - 填充等高线 两个的返回值值是一样的(return values are the sam ...

  7. 基于matplotlib的数据可视化(图形填充fill fill_between) - 笔记(二)

    区域填充函数有 fill(*args, **kwargs) 和fill_between() 1  绘制填充多边形fill() 1.1 语法结构 fill(*args, **kwargs) args - ...

  8. 基于matplotlib的数据可视化 - 柱状图bar

    柱状图bar 柱状图常用表现形式为: plt.bar(水平坐标数组,高度数组,宽度比例,ec=勾边色,c=填充色,label=图例标签) 注:当高度值为负数时,柱形向下 1 语法 bar(*args, ...

  9. jquery echarts 饼状图

    var myChart = echarts.init(document.getElementById('myChart')); option = { title : { text: '某站点用户访问来 ...

随机推荐

  1. JavaScript 将行结构数据转化为树形结构,可提供给常用的tree插件直接使用(高效转化方案)

    前台接收到的数据格式 var rows=[{ parent: 'root', id: 'DC', title: '集团' }, { parent: 'DC', id: '01', title: '上海 ...

  2. OpenGL ES 3.0片段着色器(四)

    片段着色器流程图 片段着色器(fragment shader)实现了一个通用的可编程操作片段的方法.片段着色器执行由 光栅化生成的每个片段. • Shader program(着色器程序)—片段着色器 ...

  3. jetty 9使用

    jetty 9 使用 下载jdk 7 http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-ja ...

  4. 【转】java并发编程系列之ReadWriteLock读写锁的使用

    前面我们讲解了Lock的使用,下面我们来讲解一下ReadWriteLock锁的使用,顾明思义,读写锁在读的时候,上读锁,在写的时候,上写锁,这样就很巧妙的解决synchronized的一个性能问题:读 ...

  5. 【转】web.xml不同版本的头

    web.xml v2.3 <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web- ...

  6. Jenkins 集成Unity3D Xcode

    如果Mac 上没有安装brew.先安装:ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)& ...

  7. WPF编程:textbox控件文本框数据显示最后一行

    WPF编程:textbox控件文本框数据显示最后一行 TextBox控件在接收大量数据的时候,滚动条一般在最上方,如何使滚动条随着数据的接收而向下滚动呢?比如有一个TextBox'控件txbRecvD ...

  8. 我的webrequest经验

    1 webrequest 是什么:编程方式模拟web请求,利用webrequest可以实现 相当于一个浏览器请求一个网页的效果,但是它始终是模拟请求, 与浏览器输入框输入网址请求不一样. 2 程序设计 ...

  9. 牛客网-《剑指offer》-从尾到头打印链表

    题目:http://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35cfa8e8035 C++ /** * struct ListNode { * i ...

  10. LintCode: Number of Islands

    分析:经典连通分量问题 图: 节点:所有1的位置 边:两个相邻的1的位置有一条边 BFS/DFS (DFS使用递归,代码较短) 选一个没标记的点,然后搜索,扩展4个邻居(如果有),直到不能扩展 每一次 ...