iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >使用python怎么绘制一个茎叶图和复合饼图
  • 453
分享到

使用python怎么绘制一个茎叶图和复合饼图

2023-06-06 14:06:37 453人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章将为大家详细讲解有关使用python怎么绘制一个茎叶图和复合饼图,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。茎叶图from itertools import&n

这篇文章将为大家详细讲解有关使用python怎么绘制一个茎叶图和复合饼图,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

茎叶图

from itertools import groupbynums2=[225, 232,232,245,235,245,270,225,240,240,217,195,225,185,200,    220,200,210,271,240,220,230,215,252,225,220,206,185,227,236]for k, g in groupby(sorted(nums2), key=lambda x: int(x) // 10):  print (k, list(g))  # print('k', k)  # print('g', list(g))  lst = map(str, [int(y) % 10 for y in list(g)])  print (k, '|', ' '.join(lst))

输出:

18 | 5 519 | 520 | 0 0 621 | 0 5 722 | 0 0 0 5 5 5 5 723 | 0 2 2 5 624 | 0 0 0 5 525 | 227 | 0 1

说明:

/ 就表示 浮点数除法,返回浮点结果; // 表示整数除法。

itertools.groupby 按照分组函数的值对元素进行分组。

>>> from itertools import groupby>>> x = groupby(range(10), lambda x: x < 5 or x > 8)>>> for condition, numbers in x:print(condition, list(numbers))输出:True [0, 1, 2, 3, 4]False [5, 6, 7, 8]True [9]>>> [k for k, g in groupby('AAAABBBCCDAABBB')]['A', 'B', 'C', 'D', 'A', 'B']>>> [list(g) for k, g in groupby('AAAABBBCCD')][['A', 'A', 'A', 'A'], ['B', 'B', 'B'], ['C', 'C'], ['D']]

map(function, iterable, ...) 根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
4.循环加处理的例子

>>> [int(y) % 10 for y in [22,73,34,92,45]][2, 3, 4, 2, 5]

复合饼图

import numpy as npimport matplotlib as mplfrom matplotlib import cmimport matplotlib.pyplot as pltfrom matplotlib.patches import ConnectionPatch# 使图表元素中正常显示中文mpl.rcParams['font.sans-serif'] = 'SimHei'# 使坐标轴刻度标签正常显示负号mpl.rcParams['axes.unicode_minus'] = False#制画布fig = plt.figure(figsize=(9,5.0625), facecolor='cornsilk')ax1 = fig.add_subplot(121)ax2 = fig.add_subplot(122)# 调整子区布局fig.subplots_adjust(wspace=0)# 大饼图的制作labels = ['成都','武汉','昆明','贵阳','西安','其它']size = [802,530,477,256,233,307]# 分裂距离explode=(0,0,0,0,0,0.1)ax1.pie(size,        # 数据    autopct='%1.1f%%',  # 锲形块的数据标签格式    startangle=30,    # 锲形块开始角度    labels=labels,    colors=cm.Blues(range(10, 300, 50)),    explode=explode)#小饼图的制作labels2 = ['西宁','拉萨','乌鲁木齐','兰州']size2 = [102,79, 76, 50]width=0.2ax2.pie(size2,    autopct='%1.1f%%',    startangle=90,    labels=labels2,    colors=cm.Blues(range(10, 300, 50)),    radius=0.5,    shadow=False)#使用ConnectionPatch画出两个饼图的间连线#先得到饼图边缘的数据theta1, theta2 = ax1.patches[-1].theta1, ax1.patches[-1].theta2center, r   = ax1.patches[-1].center, ax1.patches[-1].r#画出上边缘的连线x = r*np.cos(np.pi/180*theta2)+center[0]y = np.sin(np.pi/180*theta2)+center[1]con1 = ConnectionPatch(xyA=(0, 0.5),            xyB=(x,y),            coordsA=ax2.transData,            coordsB=ax1.transData,            axesA=ax2,axesB=ax1)print(-width/2, 0.5)print(x,y)#画出下边缘的连线x = r*np.cos(np.pi/180*theta1) + center[0]y = np.sin(np.pi/180*theta1) + center[1]con2 = ConnectionPatch(xyA=(-0.1, -0.49),            xyB=(x,y),            coordsA='data',            coordsB='data',            axesA=ax2,axesB=ax1)# 添加连接线for con in [con1, con2]:  con.set_color('gray')  ax2.add_artist(con)  con.set_linewidth(1)plt.show()

输出:

使用python怎么绘制一个茎叶图和复合饼图

关于使用Python怎么绘制一个茎叶图和复合饼图就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: 使用python怎么绘制一个茎叶图和复合饼图

本文链接: https://www.lsjlt.com/news/247363.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作