python绘制环状条形图

python绘制环状条形图

图表展示了截至2021年2月13日世界各国确诊人数
效果图如下: python绘制环状条形图_第1张图片

数据如下:

case=pd.read_excel('cov.xlsx',index_col=0,encoding='gbk')
print(case)


          累计确诊
地区            
美国    28106704
印度    10892550
巴西     9765694
俄罗斯    4042837
英国     4013799
法国     3427386
西班牙    3056035
意大利    2697296
土耳其    2572190
德国     2330422
哥伦比亚   2185169
阿根廷    2015496
墨西哥    1978954
波兰     1577036
伊朗     1503753

主要利用了matplotlib里的pie函数
完整代码:

def cyclic_bar (data,r0,delta):
    ind=list(data.index)[::-1]
    num=list(data.iloc[:,0])[::-1]
    row=data.shape[0]  
    fig,ax=plt.subplots(figsize=(5,5))
    labels=data.columns[:1]
    col0=data.iloc[:,0]
    w=data.iloc[0,0]
    data[labels]=[n/w*0.7 for n in col0]
    data['nul']=[0.75-n/w*0.7 for n in col0] #空白部分
    color_list=['darkcyan','red','blue','green','peru','yellow','magenta','tomato',
            'maroon','purple','lime','chocolate','olive','rosybrown','gold']
    #绘制同心圆环  
    for i in range(row):
        r1=delta*row+r0-delta*i
        colors=[color_list[i],'lightgrey'] 
        ax.pie(data.iloc[i,:], shadow=False, colors=colors,startangle=90,radius=r1,
               wedgeprops={'linewidth': 2, 'edgecolor': 'white'}) #绘制圆环
        plt.text(0,0.02+r0+delta*i,ind[i])
        plt.text(0.5,0.02+r0+delta*i,num[i])
    ax.pie([1],radius=r0,colors='w')
    plt.show()

cyclic_bar(case,0.4,0.1)

你可能感兴趣的:(python,可视化,数据可视化)