美文网首页大数据呆鸟的Python数据分析
【数据可视化】用Python绘制南丁格尔玫瑰图

【数据可视化】用Python绘制南丁格尔玫瑰图

作者: 枫璃 | 来源:发表于2020-04-08 17:10 被阅读0次

    前言:

    关于全球疫情的可视化展示,之前尝试过使用Sankey图进行展示(https://www.jianshu.com/p/d1ad468d79c8),也尝试过使用地图进行绘制(https://www.jianshu.com/p/1a2dbc0614ce),这篇换成用南丁格尔玫瑰图做展示,这也是很多媒体常用的图形类型。

    一、什么是南丁格尔玫瑰图

                南丁格尔玫瑰图是弗罗伦斯·南丁格尔所发明的。又名为极区图。是一种圆形的直方图。 南丁格尔自己常昵称这类图为鸡冠花图(coxcomb),并且用以表达军医院季节性的死亡率。

                弗罗伦斯·南丁格尔(英语:Florence Nightingale,1820年5月12日-1910年8月13日),英国护士统计学家,出生于意大利的一个英国上流社会的家庭。在德国学习护理后,曾往伦敦的医院工作。于1853年成为伦敦慈善医院的护士长。

                  出于对资料统计的结果会不受人重视的忧虑,她发展出一种色彩缤纷的图表形式,让数据能够更加让人印象深刻。 这种图表形式有时也被称作「南丁格尔的玫瑰」,是一种圆形的直方图。 南丁格尔自己常昵称这类图为鸡冠花图(coxcomb),并且用以表达军医院季节性的死亡率,对象是那些不太能理解传统统计报表的公务人员。 她的方法打动了当时的高层,包括军方人士和维多利亚女王本人,于是医事改良的提案才得到支持。

                


    二、如何用Python制作南丁格尔玫瑰图

                制作南丁格尔玫瑰图有很多方法,比如用excel、R、Tableau都可以制作,这里介绍如何用Python制作。

                使用的数据是某日新冠疫情的全球确诊数量,数据原始格式如下:

    绘制效果:

    制作步骤:

    2.1、安装Python、Pycharm,安装Python包:pyecharts

    具体方法可参考:https://www.jianshu.com/p/621fd21218db

    2.2、导入包、读入准备好的数据:

    import pandasas pd

    from pyecharts.chartsimport Pie

    from pyechartsimport optionsas opts

    # 创建数据框

    df1 = pd.read_csv('E:\hill2020\Python相关\疫情地图.csv')

    # 降序排序

    df1.sort_values(by='num', ascending=False, inplace=True)

    # 只取前20个

    df=df1[:20]

    2.3、数据格式转换&画图:

    # 提取数据

    v = df['continent'].values.tolist()

    d = df['num'].values.tolist()

    #设置颜色:

    '''color_series = ['#FAE927','#E9E416','#C9DA36','#9ECB3C','#6DBC49',

    '#37B44E','#3DBA78','#14ADCF','#209AC9','#1E91CA',

    '#2C6BA0','#2B55A1','#2D3D8E','#44388E','#6A368B'

    '#7D3990','#A63F98','#C31C88','#D52178','#D5225B',

    '#D02C2A','#D44C2D','#F57A34','#FA8F2F','#D99D21',

    '#CF7B25','#CF7B25','#CF7B25']

    '''

    # 实例化Pie类

    pie1 = Pie(init_opts=opts.InitOpts(width='1350px', height='950px'))

    # 设置颜色

    #pie1.set_colors(color_series)

    # 添加数据,设置饼图的半径,是否展示成南丁格尔图

    pie1.add("", [list(z)for zin zip(v, d)],

            radius=["10%", "135%"],  #内半径,外半径

            center=["30%", "75%"],  #中心点的坐标位置

            rosetype="area",

            is_clockwise=False  # 逆时针 or 顺时针

            )

    # 设置全局配置项

    pie1.set_global_opts(title_opts=opts.TitleOpts(title='全球累计确诊top20'),

                        legend_opts=opts.LegendOpts(is_show=False),

                        toolbox_opts=opts.ToolboxOpts())

    # 设置系列配置项

    pie1.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="inside", font_size=12,

                                                  formatter="{b}:{c}例", font_style="italic",

                                                  font_weight="bold", font_family="Microsoft YaHei"

                                                  ),

                        )

    # 生成html文档

    pie1.render('南丁格尔玫瑰图.html')

    执行完后,我们可以看到PyCharm默认的文件夹中生成了一个名为“南丁格尔玫瑰图”的html文件,打开这个html文件,即可获得本章开头的玫瑰图了。

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    更多数据相关文章,欢迎关注公众号“大数据会”,一起学习交流,留言可以获取相关数据哦!

    相关文章

      网友评论

        本文标题:【数据可视化】用Python绘制南丁格尔玫瑰图

        本文链接:https://www.haomeiwen.com/subject/rrnxphtx.html