用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.3教程之模拟百度登陆代码分享
Jan 16 Python
python基础教程之popen函数操作其它程序的输入和输出示例
Feb 10 Python
python模拟Django框架实例
May 17 Python
python中类和实例如何绑定属性与方法示例详解
Aug 18 Python
python实现excel读写数据
Mar 02 Python
对Python 中矩阵或者数组相减的法则详解
Aug 26 Python
numpy.array 操作使用简单总结
Nov 08 Python
Python完全识别验证码自动登录实例详解
Nov 24 Python
python 写函数在一定条件下需要调用自身时的写法说明
Jun 01 Python
python 8种必备的gui库
Aug 27 Python
Python+Appium自动化测试的实战
Jun 30 Python
Django数据库(SQlite)基本入门使用教程
Jul 07 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
thinkphp实现发送邮件密码找回功能实例
2014/12/01 PHP
PHP实现新型冠状病毒疫情实时图的实例
2020/02/04 PHP
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
2010/03/20 Javascript
Javascript Jquery 遍历Json的实现代码
2010/03/31 Javascript
简短几句 通俗解释javascript的闭包
2011/01/17 Javascript
js文件缓存之版本管理详解
2013/07/05 Javascript
深入理解JavaScript系列(29):设计模式之装饰者模式详解
2015/03/03 Javascript
jquery实现滑动特效代码
2015/08/10 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
2016/04/26 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
BootStrap 弹出层代码
2017/02/09 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
2017/11/09 jQuery
iview table render集成switch开关的实例
2018/03/14 Javascript
webpack5 联邦模块介绍详解
2020/07/08 Javascript
Python简单格式化时间的方法【strftime函数】
2016/09/18 Python
python2 与 python3 实现共存的方法
2018/07/12 Python
利用python实现冒泡排序算法实例代码
2019/12/01 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
python3 re返回形式总结
2020/11/20 Python
CSS3轻松实现清新 Loading 效果的简单实例
2016/06/06 HTML / CSS
浅谈css3新单位vw、vh、vmin、vmax的使用详解
2017/12/01 HTML / CSS
HTML5实现WebSocket协议原理浅析
2014/07/07 HTML / CSS
俄罗斯苹果优质经销商商店:iPort
2020/05/27 全球购物
一份全面的PHP面试问题考卷
2012/07/15 面试题
面向对象设计的原则是什么
2013/02/13 面试题
公司员工的自我评价范例
2013/11/01 职场文书
二年级班级文化建设方案
2014/05/10 职场文书
2014年秋季开学演讲稿
2014/05/24 职场文书
爱护花草树木的标语
2014/06/11 职场文书
课外访万家心得体会
2014/09/03 职场文书
2014年创卫工作总结
2014/11/24 职场文书
职工年度考核评语
2014/12/31 职场文书
天坛导游词
2015/02/02 职场文书
网站文案策划岗位职责
2015/04/14 职场文书
详细介绍python类及类的用法
2021/05/31 Python
Win11控制面板快捷键是什么?Win11打开控制面板的方法汇总
2022/07/07 数码科技