用python 绘制茎叶图和复合饼图


Posted in Python onFebruary 26, 2021

茎叶图

from itertools import groupby
nums2=[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 5
19 | 5
20 | 0 0 6
21 | 0 5 7
22 | 0 0 0 5 5 5 5 7
23 | 0 2 2 5 6
24 | 0 0 0 5 5
25 | 2
27 | 0 1

说明:

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

2.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']]

3.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 np
import matplotlib as mpl
from matplotlib import cm
import matplotlib.pyplot as plt
from 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.2
ax2.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].theta2
center, 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 绘制茎叶图和复合饼图的详细内容,更多关于python 绘制茎叶图和复合饼图的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python 合并文件的具体实例
Aug 08 Python
Python使用代理抓取网站图片(多线程)
Mar 14 Python
Python实现的密码强度检测器示例
Aug 23 Python
Python实现的简单模板引擎功能示例
Sep 02 Python
Python numpy 提取矩阵的某一行或某一列的实例
Apr 03 Python
python 不以科学计数法输出的方法
Jul 16 Python
在Python中定义一个常量的方法
Nov 10 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
Dec 20 Python
详解Appium+Python之生成html测试报告
Jan 04 Python
pytorch numpy list类型之间的相互转换实例
Aug 18 Python
Python和Sublime整合过程图示
Dec 25 Python
Tensorflow 实现释放内存
Feb 03 Python
python lambda的使用详解
Feb 26 #Python
python爬虫scrapy框架之增量式爬虫的示例代码
Feb 26 #Python
详解Python openpyxl库的基本应用
Feb 26 #Python
解决python的空格和tab混淆而报错的问题
Feb 26 #Python
Python Spyder 调出缩进对齐线的操作
Feb 26 #Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
Feb 26 #Python
Python plt 利用subplot 实现在一张画布同时画多张图
Feb 26 #Python
You might like
PHP中的串行化变量和序列化对象
2006/09/05 PHP
PHP缩略图等比例无损压缩,可填充空白区域补充色
2011/06/10 PHP
通过php删除xml文档内容的方法
2015/01/23 PHP
Apache连接PHP后无法启动问题解决思路
2015/06/18 PHP
在线游戏大家来找茬II
2006/09/30 Javascript
JS常用表单验证方法总结
2014/05/22 Javascript
JQuery插件iScroll实现下拉刷新,滚动翻页特效
2014/06/22 Javascript
jQuery实现在列表的首行添加数据
2015/05/19 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
2016/01/18 Javascript
微信小程序 实现tabs选项卡效果实例代码
2016/10/31 Javascript
JavaScript实现星级评分
2017/01/12 Javascript
对存在JavaScript隐式类型转换的四种情况的总结(必看篇)
2017/08/31 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
2018/11/14 Javascript
nuxt.js中间件实现拦截权限判断的方法
2018/11/21 Javascript
element-ui table span-method(行合并)的实现代码
2018/12/20 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
python 从远程服务器下载日志文件的程序
2013/02/10 Python
Python的argparse库使用详解
2018/10/09 Python
利用Python正则表达式过滤敏感词的方法
2019/01/21 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
2019/04/12 Python
Django实现发送邮件功能
2019/07/18 Python
tensorflow之并行读入数据详解
2020/02/05 Python
Python object类中的特殊方法代码讲解
2020/03/06 Python
用python制作个音乐下载器
2021/01/30 Python
新奇的小玩意:IWOOT
2016/07/21 全球购物
美国顶级奢侈茶:Mighty Leaf Tea(美泰茶)
2016/11/26 全球购物
小米俄罗斯授权商店:Xiaomi俄罗斯
2019/12/08 全球购物
英语国培研修感言
2014/02/13 职场文书
职业女性的职业规划
2014/03/04 职场文书
办公室主任职责范本
2014/03/07 职场文书
信息管理与信息系统专业求职信
2014/06/21 职场文书
公证委托书格式
2014/09/13 职场文书
实习指导老师意见
2015/06/04 职场文书
任长霞观后感
2015/06/16 职场文书
幼儿园亲子活动感想
2015/08/07 职场文书