用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的Django框架的运行方式及处理流程
Apr 08 Python
Python and、or以及and-or语法总结
Apr 14 Python
在Python中使用PIL模块处理图像的教程
Apr 29 Python
浅谈python新手中常见的疑惑及解答
Jun 14 Python
Python Flask-web表单使用详解
Nov 18 Python
Tensorflow卷积神经网络实例进阶
May 24 Python
浅析python继承与多重继承
Sep 13 Python
Scrapy框架使用的基本知识
Oct 21 Python
对python for 文件指定行读写操作详解
Dec 29 Python
解决Python3下map函数的显示问题
Dec 04 Python
Python loguru日志库之高效输出控制台日志和日志记录
Mar 07 Python
Django模型中字段属性choice使用说明
Mar 30 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之对抗Web扫描器的脚本技巧
2008/10/01 PHP
php使用Smarty的相关注意事项及访问变量的几种方式
2011/12/08 PHP
浅析PHP程序设计中的MVC编程思想
2014/07/28 PHP
PHP.ini安全配置检测工具pcc简单介绍
2015/07/02 PHP
在WordPress中使用wp-cron插件来设置定时任务
2015/12/10 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
php使用array_chunk函数将一个数组分割成多个数组
2018/12/05 PHP
查询绑定数据岛的表格中的文本并修改显示方式的js代码
2009/12/15 Javascript
使用js完成节点的增删改复制等的操作
2014/01/02 Javascript
JavaScript返回当前会话cookie全部键值对照的方法
2015/04/03 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
2016/08/19 Javascript
jQuery快速实现商品数量加减的方法
2017/02/06 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
2017/03/13 Javascript
微信小程序实现给嵌套template模板传递数据的方式总结
2017/12/18 Javascript
详解如何在nuxt中添加proxyTable代理
2018/08/10 Javascript
layui结合form,table的全选、反选v1.0示例讲解
2018/08/15 Javascript
vue组件数据传递、父子组件数据获取,slot,router路由功能示例
2019/03/19 Javascript
vscode 插件开发 + vue的操作方法
2020/06/05 Javascript
pandas通过索引进行排序的示例
2018/11/16 Python
Python+OpenCV采集本地摄像头的视频
2019/04/25 Python
python识别图像并提取文字的实现方法
2019/06/28 Python
django-rest-swagger的优化使用方法
2019/08/29 Python
详解centos7+django+python3+mysql+阿里云部署项目全流程
2019/11/15 Python
利用python为PostgreSQL的表自动添加分区
2021/01/18 Python
详解如何在css3打包后自动追加前缀插件:autoprefixer
2018/12/18 HTML / CSS
html5 canvas 简单画板实现代码
2012/01/05 HTML / CSS
Carolina工作鞋官网:Carolina Footwear
2019/03/14 全球购物
集团公司总经理岗位职责
2013/12/20 职场文书
运动会广播稿300字
2014/01/10 职场文书
酒店总经理助理岗位职责
2014/02/01 职场文书
党员承诺书格式
2014/05/21 职场文书
客户经理岗位职责大全
2015/04/09 职场文书
2015年扫黄打非工作总结
2015/05/13 职场文书
2015年信息技术教研组工作总结
2015/07/22 职场文书
Java内存模型之happens-before概念详解
2021/06/13 Java/Android
MongoDB使用场景总结
2022/02/24 MongoDB