用python 繪制莖葉圖和復(fù)合餅圖
from itertools import groupbynums2=[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 519 | 520 | 0 0 621 | 0 5 722 | 0 0 0 5 5 5 5 723 | 0 2 2 5 624 | 0 0 0 5 525 | 227 | 0 1
說(shuō)明:
1./ 就表示 浮點(diǎn)數(shù)除法,返回浮點(diǎn)結(jié)果; // 表示整數(shù)除法。
2.itertools.groupby 按照分組函數(shù)的值對(duì)元素進(jìn)行分組。
>>> 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, ...) 根據(jù)提供的函數(shù)對(duì)指定序列做映射。第一個(gè)參數(shù) function 以參數(shù)序列中的每一個(gè)元素調(diào)用 function 函數(shù),返回包含每次 function 函數(shù)返回值的新列表。4.循環(huán)加處理的例子
>>> [int(y) % 10 for y in [22,73,34,92,45]][2, 3, 4, 2, 5]復(fù)合餅圖
import numpy as npimport matplotlib as mplfrom matplotlib import cmimport matplotlib.pyplot as pltfrom matplotlib.patches import ConnectionPatch# 使圖表元素中正常顯示中文mpl.rcParams[’font.sans-serif’] = ’SimHei’# 使坐標(biāo)軸刻度標(biāo)簽正常顯示負(fù)號(hào)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)# 調(diào)整子區(qū)布局fig.subplots_adjust(wspace=0)# 大餅圖的制作labels = [’成都’,’武漢’,’昆明’,’貴陽(yáng)’,’西安’,’其它’]size = [802,530,477,256,233,307]# 分裂距離explode=(0,0,0,0,0,0.1)ax1.pie(size,# 數(shù)據(jù) autopct=’%1.1f%%’, # 鍥形塊的數(shù)據(jù)標(biāo)簽格式 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畫出兩個(gè)餅圖的間連線#先得到餅圖邊緣的數(shù)據(jù)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)# 添加連接線for con in [con1, con2]: con.set_color(’gray’) ax2.add_artist(con) con.set_linewidth(1)plt.show()
輸出:
以上就是用python 繪制莖葉圖和復(fù)合餅圖的詳細(xì)內(nèi)容,更多關(guān)于python 繪制莖葉圖和復(fù)合餅圖的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. 開發(fā)效率翻倍的Web API使用技巧2. bootstrap select2 動(dòng)態(tài)從后臺(tái)Ajax動(dòng)態(tài)獲取數(shù)據(jù)的代碼3. vue使用moment如何將時(shí)間戳轉(zhuǎn)為標(biāo)準(zhǔn)日期時(shí)間格式4. 什么是Python變量作用域5. ASP常用日期格式化函數(shù) FormatDate()6. CSS3中Transition屬性詳解以及示例分享7. js select支持手動(dòng)輸入功能實(shí)現(xiàn)代碼8. java加載屬性配置properties文件的方法9. Python數(shù)據(jù)相關(guān)系數(shù)矩陣和熱力圖輕松實(shí)現(xiàn)教程10. python 如何在 Matplotlib 中繪制垂直線
