数据可视化-Excel制作南丁格尔玫瑰图

数据可视化

Excel制作南丁格尔玫瑰图

一、实验名称 

制作南丁格尔玫瑰图

二、实验目的

掌握使用excel制作绘制南丁格尔玫瑰图

三、实验原理

Excel图表里本身是没有南丁格尔玫瑰图这个模板的,但是我们可以用雷达面积图来做,玫瑰图实质就是雷达图的变种。

四、实验步骤

一、数据准备

1、打开excel
2、输入以下水果及其销量数据,按照二维表格的形式

二、制作步骤

1、首先,我们要清楚雷达图其实就是一个360的圆,也就是360°。而水果种类数可以利用counta()函数,来计算出来,一共是16种。那么最终每一个种类占据的角度值为360/16=22.5°。

2、其次,我们要填充一个360°的数字序列,具体这个序列有什么用呢?接着往下看。

3、下面我们就要开始构造数据区域了。我们已经知道了:每一个水果种类占据的角度范围是22.5°,取个整也就是22°,那么对于这样一个360°的填充序列,我们需要构造多个1-22的序列,每一个序列,放置一个水果销量的值,效果如下。

4、但是如果我们这样做下去最终的效果图,是每一个块与块直间存在一个缝隙。第3步说过每一个水果种类是22°,所以我们都将第一个角度都改为0,效果如下。

5、添加一个平均值列,使用average函数计算出每种水果的平均值。

6、选中数据列和平均值列,插入雷达图。使用快捷键:ctrl+shift+↓,向下选中数据。

7、调整一下上述雷达图的格式,去除掉数据标签、图例、雷达轴。

依次选中图例、数据标签、雷达轴,选中后按下delete即可。

注意:图中红色的圆圈代表我们的平均值。外环的每一个空白格代表我们的水果种类。中间的缝隙就是我们开始留下的1°

至此整个玫瑰图就基本完成了。

五、实验总结

在Excel中,绘制很多图形都是需要对原始数据做一定的处理,然后结合辅助列来完成最终图形的制作。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: import matplotlib.pyplot as plt from matplotlib import pyplot as plt from matplotlib.pyplot import figure from matplotlib.patches import Polygon# Data to be represented values = [1, 2, 3, 4, 5]# Number of roses to be drawn n = len(values)# What will be the angle of each axis in the plot? (we divide the plot / number of variable) angles = [n / float(180) * math.pi * (i / float(n)) for i in range(n)] angles += angles [:1]# Initialise the spider plot ax = plt.subplot(111, polar=True)# Draw one axe per variable + add labels labels yet plt.xticks(angles[:-1], range(1, n+1))# Draw ylabels ax.set_rlabel_position(0) plt.yticks([1, 2, 3, 4, 5], ["1", "2", "3", "4", "5"], color="grey", size=7) plt.ylim(0, 5)# Plot data ax.plot(angles, values, 'o-', linewidth=2)# Fill area ax.fill(angles, values, 'teal', alpha=0.1)# 请添加你的代码 plt.title('南丁格尔玫瑰图') plt.show() ### 回答2: 南丁格尔玫瑰图是一种可视化数据的方式,通常用于展示多个数据类别间的数量关系,并以雷达的形式呈现。在Python中,我们可以使用matplotlib库来创建南丁格尔玫瑰图。 首先,我们需要导入所需的库: ```python import matplotlib.pyplot as plt import numpy as np ``` 然后,我们定义数据,包括类别名称和相应的数量值: ```python categories = ['类别1', '类别2', '类别3', '类别4', '类别5'] # 类别名称 values = [10, 20, 15, 5, 30] # 数量值 ``` 接下来,我们计算每个类别所占的角度: ```python angles = np.linspace(0, 2 * np.pi, len(categories), endpoint=False).tolist() ``` 然后,我们将数据闭合,以便绘制雷达: ```python values += values[:1] # 闭合数据 angles += angles[:1] ``` 现在,我们可以开始绘制南丁格尔玫瑰图了: ```python fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(polar=True)) # 创建极坐标子 ax.plot(angles, values, marker='o') # 绘制雷达线条 ax.fill(angles, values, alpha=0.25) # 填充雷达区域 ax.set_xticks(angles[:-1]) # 设置角度刻度 ax.set_xticklabels(categories) # 设置刻度标签 plt.show() # 显示形 ``` 这段代码将创建一个大小为6x6的极坐标子,绘制了基于给定数据的南丁格尔玫瑰图。你可以根据需要修改categories和values的值来适应你的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值