数据可视化python,绘制饼图,代码和解析

您所在的位置:网站首页 绘制三维饼图 数据可视化python,绘制饼图,代码和解析

数据可视化python,绘制饼图,代码和解析

2022-12-27 02:30| 来源: 网络整理| 查看: 265

饼图样式:

使用matplotlib.pyplot.pie绘制

数据可视化python,绘制饼图,代码和解析 ; 代码描述: import matplotlib.pyplot as plt import pandas as pd #定义饼状图的标签,标签是列表 timeData = pd.read_csv(r"doubledec.csv") #绘制饼图 # plt.pie(timeData[ 'Time']) #设置饼图的起始位置为startangle=90度,顺序为顺时针 # plt. pie(timeData['Time '], startangle=90, counterclock=False) #创建画布并设置大小 plt . figure(figsize=(9,9)) #为饼图添加标题 plt. title('某院校食堂每日出售食品饼图',fontdict={'fontsize': 24}, y=1.05) #为饼图设置标签 plt. rcParams['font.sans-serif']=['SimHei'] #正常显示中文标签设置 labels =['冒菜','麻辣烫','鸡腿饭','牛肉面','汉堡','鸡架拌饭'] # plt.pie(timeData[ 'Time'], Labels=labels, startangle=90, counterclock=False) plt.pie(timeData['Time'], autopct= '%1.1f%%' , textprops={'fontsize':12,'color':'b'}, labels=labels, startangle=180,counterclock=False) #为饼图设置图例,Loc 表示边框的位置为左下角,frameon=False 表示去掉图例的边框 plt. rcParams['legend.fontsize'] = 10 # 图例大小 plt.legend(loc='lower left') plt.axis('equal')#将横轴纵轴的坐标值设为等同 plt. show() 代码分析:

(1),该函数的定义如下:

matplotlib.pyplot.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:数组,可选参数,默认为None。 如果不是None,是一个长度与3.x相同长度的数组,用来指定每部分的偏移量。例如:explode[0,0,0.2,0,0],第二个饼块被拖出。labels:列表,可选参数,默认None。一般为一个与x数组等长的字符串序列作为每个饼块的标记。colors:数组,可选参数,默认为:None。用来标注每块饼图的matplotlib颜色参数序列。如果为None,将使用当前活动环的颜色。autopct:默认是None,字符串或函数,可选参数。如果不是None,是一个字符串或函数,用于为饼图自动添加百分比显示,可以采用格式化的方法显示。例如:autopct=%1.1f%%表示百分比保留小数点后一位pctdistance:浮点数,可选参数,默认值:0.6。设置百分比标签与圆心的距离。如果autopct是None,被忽略。shadow:布尔值,可选参数,默认值:False。在饼图下面画阴影。startangle:浮点类型,可选参数,默认:None。如果不是None,则代表饼图的起始角度。为从x轴逆时针或顺时针旋转饼图的开始角度。顺时针还是逆时针取决于参数counterclock的取值。counterclock:布尔值,可选参数,默认为:None。指定指针方向,指定是否让饼图按逆时针顺序呈现。labeldistance:浮点数,可选参数,默认值:1.1。用于设置饼图的标签文本与中心点的距离,设置该参数时需要参考饼图的半径radius。radius:浮点类型,可选参数,默认为:None。饼图的半径,如果半径是None,将被设置成1。textprops:字典类型,可选参数,默认值为:None。传递给text对象的字典参数,用于设置饼图中文本的属性,如字体大小、颜色等。wedgeprops:字典类型,可选参数,默认值:None。参数字典传递给wedge对象用来画一个饼图,用来设置饼图内外边界的属性,如边界线的粗细、颜色等。例如:wedgeprops={‘linewidth’:3}设置wedge边线宽为3。center:浮点类型的列表,可选参数,默认值:(0,0)。设置饼图中心的位置,默认为原点。

csv文件为:

数据可视化python,绘制饼图,代码和解析

Things和Time只是随意的参数,可以随意该写

Original: https://blog.csdn.net/qq_52596292/article/details/127476077Author: 一个喜欢听雨的男孩Title: 数据可视化python,绘制饼图,代码和解析

相关阅读 Title: Python标准库模块之heapq – 堆构造

读前福利:几百本经典书籍https://www.johngo689.com/2158/

堆作为优先队列的常用方法,而且在数据结构和算法方面,经常使用大顶堆和小顶堆进行问题的解决。

[En]

Heap is a common method of priority queue, and large top heap and small top heap are often used to solve problems in data structure and algorithm.

使用 Python 提供的标准库 heapq:

import heapq

注意:默认的堆结构是小顶堆

方法一:创建空列表,然后手动加入元素

heapq.heappush()

举例:

>>> nums = [2, 5, 1, 6, 9, 0] >>> heap = [] >>> for num in nums: ... heapq.heappush(heap, num) ... >>> print(heap[0]) 0 >>> print([heapq.heappop(heap) for _ in range(len(nums))]) [0, 1, 2, 5, 6, 9]

方法二:初始化 list,然后转为堆结构

heapq.heapify(list)

直接将 list 转为堆结构

举例:

>>> nums = [2, 5, 1, 6, 9, 0] >>> # 转为heap结构 ... >>> heap.heapify(nums) >>> print(nums[0]) 0 >>> print([heapq.heappop(nums) for _ in range(len(nums))]) [0, 1, 2, 5, 6, 9]

删除最小值 并且 加入新元素, 使用 heapq.heaprepalce()

>>> nums = [2, 5, 1, 6, 9, 0] >>> # 转为heap结构 ... >>> heap.heapify(nums) >>> heapq.heapreplace(nums, 100) 0 >>> heapq.heapreplace(nums, -1) 1 >>> print([heapq.heappop(nums) for _ in range(len(nums))]) [-1, 2, 5, 6, 9, 100]

这里没有直接构造大顶堆的方法,可以使用一个很巧妙的思路进行解决。

[En]

There is no direct way to construct a large top heap, which can be solved with a very ingenious idea.

这是一个很 Tirck 的思路:

首先我们用上述方法一进行构造堆结构,注意要在每一个元素增加一个负号(-):

[En]

First, we use the above method 1 to construct the heap structure, and note that we need to add a negative sign (-) to each element:

>>> nums [0, 5, 1, 6, 9, 2] >>> nums = [2, 5, 1, 6, 9, 0] >>> heap = [] >>> for num in nums: ... heapq.heappush(heap, -num) >>> heap [-9, -6, -1, -2, -5, 0]

接下来,打印堆元素,注意也要加负号(-):

>>> print([-heapq.heappop(heap) for _ in range(len(nums))]) [9, 6, 5, 2, 1, 0]

这样是不是就巧妙的将大顶堆进行打印出来了。

整体思路:push(-) -> pop(-),负负得正。

获取堆中最大或最小的范围值。

使用 heapq.nlargest() 或 heapq.nsmallest() 函数进行求得:

>>> nums = [2, 5, 1, 6, 9, 0] >>> heapq.heapify(nums) >>> heapq.nlargest(3, nums) [9, 6, 5] >>> heapq.nsmallest(3, nums) [0, 1, 2]

这个比较简单,需要主要添加范围值。

Original: https://www.cnblogs.com/yydsxiaozhu/p/15392658.htmlAuthor: 技术gogogoTitle: Python标准库模块之heapq – 堆构造

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/283569/

转载文章受原作者版权保护。转载请注明原作者出处!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3