VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > 简明python教程 >
  • Matplotlib数据可视化(6):饼图与箱线图(3)

(sizes, explode=explode, labels=labels, autopct='%1.1f%%') print('第1个返回值:',patches) print('第2个返回值:',texts) print('第3个返回值:',autotexts) texts[0].set_color('red') # 设置第一个扇形的字符标签字体颜色 texts[0].set_fontsize(30) # 设置第一个扇形的字符标签字体大小 autotexts[0].set_color('white') # 设置第一个扇形的数值标签字体颜色 plt.show()
 
第1个返回值: [<matplotlib.patches.Wedge object at 0x7efe1de27450>, <matplotlib.patches.Wedge object at 0x7efe1de27a50>, <matplotlib.patches.Wedge object at 0x7efe1de311d0>, <matplotlib.patches.Wedge object at 0x7efe1de31a90>]
第2个返回值: [Text(0.9068994725035225, 0.7858329000320824, 'Python组'), Text(-1.0005952104475537, 0.4569564802357176, 'Java组'), Text(0.15654637770487598, -1.0888035780743386, 'C组'), Text(1.055442297353649, -0.30990572269135586, 'Go组')]
第3个返回值: [Text(0.5290246922937214, 0.4584025250187147, '22.7%'), Text(-0.5457792056986657, 0.2492489892194823, '40.9%'), Text(0.0853889332935687, -0.593892860767821, '27.3%'), Text(0.5756957985565357, -0.1690394851043759, '9.1%')]
 
In [9]:
labels = 'Python组', 'Java组', 'C组', 'Go组'
sizes = [25, 45, 30, 10]
explode = (0.1, 0, 0, 0)

fig1, ax1 = plt.subplots(figsize=(5, 5))
patches, texts, autotexts = ax1.pie(sizes, explode=explode, autopct='%1.1f%%')

ax1.legend(patches, labels, loc="upper right",bbox_to_anchor=(0.75, 0, 0.5, 0.4))
plt.show()
 
回到顶部

1.8 嵌套饼图

In [10]:
sizes = {
    'Python组':{'男':10, '女': 15},
    'Java组':{'男':15, '女': 30},
    'C组':{'男':5, '女': 25},
    'Go组':{'男':4, '女': 6}
}

def func(sizes):
    """提取数据和标签"""
    data1 = []
    data2 = []
    data2_label = []
    for key in sizes.keys():
        data1.append(sizes.get(key).get('男') + sizes.get(key).get('女'))
        data2.append(sizes.get(key).get('男'))
        data2_label.append(key+'-'+'男')
        data2.append(sizes.get(key).get('女'))
        data2_label.append(key+'-'+'女')
    return data1, data2, sizes.keys(), data2_label


data1, data2, data1_label, data2_label = func(sizes)


cmap = plt.get_cmap("tab20c")
outer_colors = cmap(np.arange(4)*4)
inner_colors = cmap(np.array([1, 2, 5, 6, 9, 10, 13, 14]))

fig = plt.figure(figsize=(10, 4))

ax1 = fig.add_subplot(121)
ax1.pie(data1, labels=data1_label, radius=1.5, colors=outer_colors, autopct='%1.1f%%', labeldistance=1, pctdistance=0.8)
ax1.pie(data2, labels=data2_label, radius=1, colors=inner_colors, autopct='%1.1f%%', labeldistance=0.4, pctdistance=0.9)
ax2 = fig.add_subplot(122)
ax2.pie(data1, labels=data1_label, radius=1.5, colors=outer_colors, autopct='%1.1f%%', labeldistance=1, pctdistance=0.8,wedgeprops=dict(width=0.8, edgecolor='w'))
ax2.pie(data2, labels=data2_label, radius=1, colors=inner_colors, autopct='%1.1f%%', labeldistance=0.4, pctdistance=0.9,wedgeprops=dict(width=0.6, edgecolor='w'))
plt.show()

相关教程