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

发布时间:2025-12-10 22:49:24 浏览次数:1

茎叶图

fromitertoolsimportgroupbynums2=[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]fork,gingroupby(sorted(nums2),key=lambdax:int(x)//10):print(k,list(g))#print('k',k)#print('g',list(g))lst=map(str,[int(y)%10foryinlist(g)])print(k,'|',''.join(lst))

输出:

18|5519|520|00621|05722|0005555723|0225624|0005525|227|01

说明:

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

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

>>>fromitertoolsimportgroupby>>>x=groupby(range(10),lambdax:x<5orx>8)>>>forcondition,numbersinx:print(condition,list(numbers))输出:True[0,1,2,3,4]False[5,6,7,8]True[9]>>>[kfork,gingroupby('AAAABBBCCDAABBB')]['A','B','C','D','A','B']>>>[list(g)fork,gingroupby('AAAABBBCCD')][['A','A','A','A'],['B','B','B'],['C','C'],['D']]

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

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

复合饼图

importnumpyasnpimportmatplotlibasmplfrommatplotlibimportcmimportmatplotlib.pyplotaspltfrommatplotlib.patchesimportConnectionPatch#使图表元素中正常显示中文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)#添加连接线forconin[con1,con2]:con.set_color('gray')ax2.add_artist(con)con.set_linewidth(1)plt.show()

输出:

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

茎叶图怎么画
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477