分享

刘万祥:如何用EXCEL做南丁格尔玫瑰图(一)

 燕赵苍狼 2015-08-11

【编者按】数据信息图在日常工作生活中得到了越来越广泛的应用,其图表表现形式也越来越多样化,南丁格尔玫瑰图无疑是一种漂亮的展现方式,那么如何使用EXCEL这种轻量型的工具制作漂亮的南丁格尔玫瑰图呢?有雷达演化制作法,有圆环图演化制作法等。

我们可以把玫瑰图想象成一个很多圈的圆环图,每个扇区方向的各序列数据点,填色的个数不同,有的多则扇区半径长,有的少则扇区半径短,这样就形成了扇区半径不等的玫瑰图。




作图步骤


1、做一个100圈的圆环图


    假设有12个方面的评价指标需要反映,准备一个12行*100列的数据区域,取值均为1。这只需要用鼠标拖拉即可完成。(实际请准备为12行*101列,第101列留待后用)


    以此为数据源插入圆环图,得到一个100(101)圈、12个扇区的圆环图,每个圈细到只有一条圆弧线,所以待会完成的图表会足够精细。



    此时圆环图自动适用当前主题配色,请在这一步时切换为自己想要的颜色主题,避免后面调整的麻烦。


    设置圆环图内径为20%,使中间的圆孔变小。






2、对各扇区数据点填色


    每个扇区对应一个评价指标,从内往外共有100个数据序列的100个数据点。现在要根据评价指标的值,来决定每个数据点是否填色。


    通过录制宏,可知设置一个数据点有无填充色的代码就是其中红色的两行:



Sub 宏1()


'


' 宏1 宏  ----通过录制宏,获得对数据点填色或不填色的代码



    ActiveSheet.ChartObjects("mychart").Activate


    ActiveChart.SeriesCollection(46).Select


    ActiveChart.SeriesCollection(46).Points(1).Select


    With Selection.Format.Fill


        .Visible = msoTrue


        .ForeColor.ObjectThemeColor = msoThemeColorAccent5


        .ForeColor.TintAndShade = 0


        .ForeColor.Brightness = 0


        .Transparency = 0


        .Solid


    End With


    ActiveChart.SeriesCollection(58).Select


    ActiveChart.SeriesCollection(58).Points(1).Select


    Selection.Format.Fill.Visible = msoFalse


End Sub



    那么,编制一个12*100的循环,对所有数据点遍历一遍:对每个扇区方向,判断这100个序列,若序列id小于评价指标则填色,否则不填色。



Sub set_colors()


    


ActiveSheet.ChartObjects("mychart").Activate



For i = 1 To 12


For j = 1 To 100


   


    ActiveChart.SeriesCollection(j).Select


    ActiveChart.SeriesCollection(j).Points(i).Select



    If j <= Range("C" & (6 + i)) Then


       Selection.Format.Fill.Visible = msoTrue     '小于等于则显示填充色


    Else


       Selection.Format.Fill.Visible = msoFalse    '大于指标值则无填充色


    End If



Next


Next



End Sub  



    其中mychart是给圆环图命的名称,方法:选中图表,在菜单图表工具-->布局-->属性,在图表名称下输入mychart即可。


    运行宏,稍等片刻宏完成,原是一整个圆的圆环图变成了各扇区方向不等长的玫瑰图,图表主体已经完工。


    将宏赋给一个按钮,以便把这个文件做成模板,方便数据更新时刷新图表。


    2003中和2007以上宏略有不同,请见具体范例。




3、给各扇区添加类别名称和值显示


    将E、F列的数据加入图表做饼图。方法:通过选择数据源对话框添加,或选中E、F列的辅助数据,ctrl+c复制,选中图表,ctrl+v粘贴,图表的最外多了一圈,选中该圈,图表工具-->设计-->更改图表类型 为饼图。


    继续选中饼图序列(无法选择到?请通过图表工具-->设计-->图表元素下拉框,第102个序列就是),设置淡灰色填充,白色边框线,这时图表有了扇区分割的底色,减少了扇区不等的突兀感。中心部分可以绘制一个圆圈覆盖住饼图的分割线。


    继续选中饼图序列,添加数据标签显示为类别名称,位置在外。



4、给图表一个外圈美化


    玫瑰图有个完整的外圈会更美观。在第1步准备数据时如果多准备1列,那么图表将有第101个圈,第2步宏填色时不会用到它。现在选中这个序列,设置其无填充色,但边框线为深灰色、3磅,得到一个完整的外圈。




    至此,用圆环图制作的玫瑰图已完成,并且做成了模板,只需要填入数据、点击按钮,即可获得刷新的玫瑰图。你觉得这个作图思路如何,相比之前的面积雷达图方法呢,你有何好方法,欢迎讨论。



    本例涉及知识点:构图思路,录制和修改宏,组合图表类型。


    制作难度:★★★★


    实用性:  ★★★



图表运用


    1、范例中设置了12个方面的评价指标,如果你只需要8个评价指标,也就是只需要8个扇区的玫瑰图,怎么办?很简单,在模板中直接整行删除图中第15-18行即可,包括指标数据和两个辅助区域的辅助数据。



    2、用这个方法也可以制作那种每个扇区方向有多层堆积的玫瑰图,做法:在宏遍历时,每个扇区方向的100个数据点,要根据数据源用select case来多条件判断,分别填充不同的颜色,而不仅是有无填色。


    这种情况下数据标签就需要手动来添加了,使用任何其他软件,也都得手动做标签吧。




    3、用这个方法也可以制作那种呈扇面形状的玫瑰图,要点是设置一个隐藏的占位扇区,其数据源取值=sum(评价指标个数)*2,设置圆环图的第一扇区起始角度为300度,那么扇面的幅度将是从左到右120度。




    4、再次重申,个人认为,玫瑰图在信息图中运用比较好,在日常商务工作中要慎用。



       


           

(责任编辑:黑阳)







       

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多