用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 相关文章推荐
python3生成随机数实例
Oct 20 Python
Python中的各种装饰器详解
Apr 11 Python
python爬取淘宝商品销量信息
Nov 16 Python
python把ipynb文件转换成pdf文件过程详解
Jul 09 Python
python实现文件的分割与合并
Aug 29 Python
解决tensorflow训练时内存持续增加并占满的问题
Jan 19 Python
Pytorch中.new()的作用详解
Feb 18 Python
python相对企业语言优势在哪
Jun 12 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
Jun 17 Python
用pandas划分数据集实现训练集和测试集
Jul 20 Python
记一次django内存异常排查及解决方法
Aug 07 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
Mar 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 新手入门教程
2009/08/03 PHP
PHP 字符串分割和比较
2009/10/06 PHP
PHP 事务处理数据实现代码
2010/05/13 PHP
解析coreseek for sphinx的使用
2013/06/21 PHP
php计算年龄精准到年月日
2015/11/17 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
多广告投放代码 推荐
2006/11/13 Javascript
放弃用你的InnerHTML来输出HTML吧 jQuery Tmpl不详细讲解
2013/04/20 Javascript
jquery中获取id值方法小结
2013/09/22 Javascript
JS中操作JSON总结
2020/12/06 Javascript
javascript多物体运动实现方法分析
2016/01/08 Javascript
浅谈Javascript数组(推荐)
2016/05/17 Javascript
AngularJS包括详解及示例代码
2016/08/17 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
Javascript 严格模式use strict详解
2017/09/16 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
Python实现windows下模拟按键和鼠标点击的方法
2015/03/13 Python
python执行get提交的方法
2015/04/29 Python
快速了解Python中的装饰器
2018/01/11 Python
python爬虫实例详解
2018/06/19 Python
python提取包含关键字的整行数据方法
2018/12/11 Python
python time.sleep()是睡眠线程还是进程
2019/07/09 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
2020/10/15 Python
美国职棒大联盟官方网上商店:MLBShop.com
2017/11/12 全球购物
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
2016/02/10 面试题
人力资源管理毕业生自荐信
2013/11/21 职场文书
幼儿园中秋节活动方案2013
2014/01/29 职场文书
小学生开学感言
2014/02/28 职场文书
二年级小学生评语
2014/04/21 职场文书
领导干部个人整改措施落实情况汇报
2014/10/29 职场文书
2014年领导班子工作总结
2014/12/11 职场文书
护士年终工作总结不会写?各科护士模板总结
2020/01/02 职场文书
Python爬虫基础初探selenium
2021/05/31 Python