ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > 图表图形 > 圆环图做南丁格尔玫瑰图(转)

圆环图做南丁格尔玫瑰图(转)

作者:绿色风 分类: 时间:2022-08-18 浏览:100
楼主
芐雨
圆环图做南丁格尔玫瑰图


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

 

作图步骤
1、做一个100圈的圆环图
    假设有12个方面的评价指标需要反映,准备一个12行*100列的数据区域,取值均为1。这只需要用鼠标拖拉即可完成。(实际请准备为12行*101列,第101列留待后用)
    以此为数据源插入圆环图,得到一个100(101)圈、12个扇区的圆环图,每个圈细到只有一条圆弧线,所以待会完成的图表会足够精细。
    此时圆环图自动适用当前主题配色,请在这一步时切换为自己想要的颜色主题,避免后面调整的麻烦。
    设置圆环图内径为20%,使中间的圆孔变小。


 

2、对各扇区数据点填色
    每个扇区对应一个评价指标,从内往外共有100个数据序列的100个数据点。现在要根据评价指标的值,来决定每个数据点是否填色。
    通过录制宏,可知设置一个数据点有无填充色的代码就是其中红色的两行:
  1. Sub 宏1()
  2. '
  3. ' 宏1 宏  ----通过录制宏,获得对数据点填色或不填色的代码
  4.     ActiveSheet.ChartObjects("mychart").Activate
  5.     ActiveChart.SeriesCollection(46).Select
  6.     ActiveChart.SeriesCollection(46).Points(1).Select
  7.     With Selection.Format.Fill
  8.         .Visible = msoTrue
  9.         .ForeColor.ObjectThemeColor = msoThemeColorAccent5
  10.         .ForeColor.TintAndShade = 0
  11.         .ForeColor.Brightness = 0
  12.         .Transparency = 0
  13.         .Solid
  14.     End With
  15.     ActiveChart.SeriesCollection(58).Select
  16.     ActiveChart.SeriesCollection(58).Points(1).Select
  17.     Selection.Format.Fill.Visible = msoFalse
  18. End Sub
那么,编制一个12*100的循环,对所有数据点遍历一遍:对每个扇区方向,判断这100个序列,若序列id小于评价指标则填色,否则不填色。
  1. Sub set_colors()
  2.    
  3. ActiveSheet.ChartObjects("mychart").Activate


  4. For i = 1 To 12
  5. For j = 1 To 100
  6.    
  7.     ActiveChart.SeriesCollection(j).Select
  8.     ActiveChart.SeriesCollection(j).Points(i).Select


  9.     If j <= Range("C" & (6 + i)) Then
  10.        Selection.Format.Fill.Visible = msoTrue     '小于等于则显示填充色
  11.     Else
  12.        Selection.Format.Fill.Visible = msoFalse    '大于指标值则无填充色
  13.     End If


  14. Next
  15. Next


  16. 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、再次重申,个人认为,玫瑰图在信息图中运用比较好,在日常商务工作中要慎用。


圆环图做南丁格尔玫瑰图(by ExcelPro图表博客).rar
2楼
亡者天下
刘万祥老师的图表,掌握的很熟练哦
3楼
芐雨
只是转的
4楼
ads
谢谢楼主,学习了!

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap