南丁格尔玫瑰图和饼图类似,算是饼图的一种变形,用法也一样,主要用在需要查看占比的场景中。
    首先需要导入我们需要使用的包,其中pandas用于数据整理,pyecharts用于绘图。

    1. import pyecharts.options as opts
    2. from pyecharts.charts import Pie

    然后准备需要的数据,所用信息来自于https://jobtube.cn/global/,整理之后的数据使用列表的形式进行存储,其中 x_data 存储国家名称,y_data 存储确诊病例数字,组合为数值对后排序以便绘图使用。
    color_series列表存储颜色用于后续的绘图使用。

    1. x_data = ["美国", "西班牙", "意大利", "法国", "德国",'英国','土耳其','伊朗','中国','俄罗斯','巴西','加拿大','比利时','荷兰','瑞士','印度']
    2. y_data = [939235, 223759, 195351, 164840, 157466,148377,107773,89328,84338,80949,59324,45354,45327,37190,28894,26496]
    3. #饼图用的数据格式是[(key1,value1),(key2,value2)],所以先使用 zip函数将二者进行组合
    4. data_pair = [list(z) for z in zip(x_data, y_data)] # 组合并推导为列表
    5. data_pair.sort(key=lambda x: x[1])
    6. color_series = ['#FAE927','#E9E416','#C9DA36','#9ECB3C','#6DBC49',
    7. '#37B44E','#3DBA78','#14ADCF','#209AC9','#1E91CA',
    8. '#2C6BA0','#2B55A1','#2D3D8E','#44388E','#6A368B'
    9. '#7D3990']

    最后使用Pyecharts库中的Pie类进行图形的绘制,代码说明如下,其中的配置项可以https://www.yuque.com/zhaoguanghui-jxq8m/vgbvep/kct547 进行查看,图形生成在本地的covid-19.html网页中。

    1. import pyecharts.options as opts
    2. from pyecharts.charts import Pie
    3. x_data = ["美国", "西班牙", "意大利", "法国", "德国",'英国','土耳其','伊朗','中国','俄罗斯','巴西','加拿大','比利时','荷兰','瑞士','印度']
    4. y_data = [939235, 223759, 195351, 164840, 157466,148377,107773,89328,84338,80949,59324,45354,45327,37190,28894,26496]
    5. #饼图用的数据格式是[(key1,value1),(key2,value2)],所以先使用 zip函数将二者进行组合
    6. data_pair = [list(z) for z in zip(x_data, y_data)] # 组合并推导为列表
    7. data_pair.sort(key=lambda x: x[1])
    8. color_series = ['#FAE927','#E9E416','#C9DA36','#9ECB3C','#6DBC49',
    9. '#37B44E','#3DBA78','#14ADCF','#209AC9','#1E91CA',
    10. '#2C6BA0','#2B55A1','#2D3D8E','#44388E','#6A368B'
    11. '#7D3990']
    12. (
    13. # 实例化Pie类
    14. Pie(init_opts=opts.InitOpts(width="1600px", height="800px", bg_color="#2c343c"))
    15. .add(
    16. series_name="国家",
    17. data_pair=data_pair, # 数据
    18. color=color_series, # 设置颜色
    19. rosetype="area", # 展示成南丁格尔图
    20. radius=["10%", "110%"],
    21. center=["50%", "65%"],
    22. label_opts=opts.LabelOpts(is_show=False),
    23. )
    24. .set_global_opts( # 设置全局配置项
    25. title_opts=opts.TitleOpts(
    26. title="全球疫情情况展示",
    27. pos_left="center",
    28. pos_top="20",
    29. title_textstyle_opts=opts.TextStyleOpts(color="#fff"),
    30. ),
    31. legend_opts=opts.LegendOpts(is_show=False),
    32. )
    33. .set_series_opts( # 设置系列配置项
    34. tooltip_opts=opts.TooltipOpts(),
    35. label_opts=opts.LabelOpts(is_show=True, position="inside", font_size=12,font_style="italic", font_family="Microsoft YaHei",formatter="{b}:{c}人",color="rgba(255, 255, 255, 0.3)"),
    36. )
    37. .render("covid-19.html")
    38. )

    image.png