【matplotlib 实战】--南丁格尔玫瑰图

这篇具有很好参考价值的文章主要介绍了【matplotlib 实战】--南丁格尔玫瑰图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

南丁格尔玫瑰图是一种用极坐标下的柱状图或堆叠柱状图来展示数据的图表。

虽然南丁格尔玫瑰图外观类似饼图,但是表示数据的方式不同,它是以半径来表示数值的,
而饼图是以扇形的弧度来表达数据的。

所以,南丁格尔玫瑰图在视觉上会夸大数据的比例,因为半径和面积之间是平方关系。
因此,当需要对比非常相近的数值时,适当的夸大有助于区分数据,但在追求数据准确性时,玫瑰图可能不是最佳选择。

据说,南丁格尔玫瑰图由统计学家和医学改革家佛罗伦萨‧南丁格尔在克里米亚战争期间创造,
用于反映军医院的季节性死亡率,从而推动医院条件的改善。

1. 主要元素

南丁格尔玫瑰图的主要元素包括:

  1. 扇形:每个扇形代表一个类别或分组,其面积大小表示该类别或分组的数值大小。
  2. 半径轴:扇形的半径表示数据的大小,半径越长表示数值越大。
  3. 图例:图例是饼图的一部分,用于解释每个饼片所代表的含义,帮助观察者理解图表。
  4. 标签:可在每个扇形上方或内部添加标签,标注该类别或分组的名称或数值,帮助人们更好地理解数据。

【matplotlib 实战】--南丁格尔玫瑰图

2. 适用的场景

南丁格尔玫瑰图适用的场景包括:

  • 数据分布比较:比较不同类别或分组之间的数据分布情况,例如比较不同产品的销售量或不同地区的人口分布。
  • 百分比展示:展示各类别或分组所占的百分比大小,特别适用于展示相对比例的数据。
  • 强调特定数据:通过扇形的面积和颜色等元素使其更加显眼和易于被注意到。
  • 增强视觉吸引力:南丁格尔玫瑰图具有独特的视觉效果,可以吸引观众的注意力,适用于需要突出表达的场合。

3. 不适用的场景

南丁格尔玫瑰图不适用的场景包括:

  • 连续数据分布:南丁格尔玫瑰图适用于展示离散的数据分布情况,不适用于展示连续数据的分布情况,例如时间序列数据。
  • 多变量比较:如果需要比较多个变量之间的关系,南丁格尔玫瑰图可能不够直观和有效。
  • 大量数据展示:如果数据量过大,可能会导致扇形过小,难以辨认和理解。
  • 数据精确度要求高:南丁格尔玫瑰图的可视化效果更多地强调数据分布的趋势和相对大小,不适合展示具有高精确度要求的数据。

4. 分析实战

本次使用 王者荣耀KPL 2023年春季赛的数据,分析各个战队的排名和胜率。

4.1. 数据来源

数据来自王者荣耀官方网站,整理好的数据下载地址:
https://databook.top/wzry/2023-spring

本次分析使用其中 各个战队的相关数据:league-2023春季赛.csv

fp = "d:/share/data/league-2023春季赛.csv"

df = pd.read_csv(fp)
df

【matplotlib 实战】--南丁格尔玫瑰图

4.2. 数据清理

原始数据中,字段比较多,提取前10名的战队,用南丁格尔玫瑰图分析其胜率情况。

key = "胜率"

data = df.sort_values("排名")
data = data.reset_index()

#提取前10名,只保留 战队 和 胜率 2个字段
data = data.loc[:9, ["战队", key]]

#胜率字段转换为 float 类型
data[key] = data[key].str.replace("%", "")
data[key] = data[key].astype("float")

data

【matplotlib 实战】--南丁格尔玫瑰图

4.3. 分析结果可视化

matplotlib 中没有提供专门绘制南丁格尔玫瑰图的接口,我们可以用极坐标系下的柱状图来模拟。

with plt.style.context("seaborn-v0_8"):
    fig = plt.figure()
    ax = fig.add_axes([0.1, 0.1, 1, 1], polar=True)
    ax.set_theta_offset(np.pi/2)
    ax.set_theta_direction(-1)
    ax.set_rlabel_position(0) 

    n = len(data)
    # 每个数据的角度
    angle = np.linspace(0, 2 * np.pi, n, endpoint=False)
    # 绘制用到的数据
    radius = np.array(data[key].tolist())

    ax.yaxis.set_major_locator(plt.NullLocator())

    # x轴刻度显示战队名称
    ax.set_xticks(angle, data["战队"])

    # 中间空出一个孔
    ax.set_ylim(-10, max(data[key]))

    ax.bar(angle, radius, color=plt.cm.tab10.colors, width=0.62)

【matplotlib 实战】--南丁格尔玫瑰图

从分析结果可以看出,第一名重庆狼队的胜率明显高出其他的战队,而其他战队的胜率差别不大。

说明目前 王者荣耀KPL联盟中,各个战队的实力比较接近,比赛会非常精彩。文章来源地址https://www.toymoban.com/news/detail-710959.html

到了这里,关于【matplotlib 实战】--南丁格尔玫瑰图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【matplotlib 实战】--热力图

    热力图,是一种通过对色块着色来显示数据的统计图表。 它通过使用颜色编码来表示数据的值,并在二维平面上呈现出来。 热力图通常用于显示大量数据点的密度、热点区域和趋势。 绘图时,一般较大的值由较深的颜色表示,较小的值由较浅的颜色表示;较大的值由偏暖的

    2024年02月08日
    浏览(34)
  • 【matplotlib 实战】--饼图

    饼图,或称饼状图,是一个划分为几个扇形的圆形统计图表。 在饼图中,每个扇形的弧长(以及圆心角和面积)大小,表示该种类占总体的比例,且这些扇形合在一起刚好是一个完全的圆形。 饼图最显著的功能在于表现“占比”。 习惯上,人们通过比较饼图扇形的大小来获

    2024年02月08日
    浏览(35)
  • 【matplotlib 实战】--气泡图

    气泡图是一种多变量的统计图表,可以看作是散点图的变形。 与散点图不同的是,每一个气泡都表示三个维度的数据,除了像散点图一样有X,Y轴,气泡的大小可以表示另一个维度的数据。 例如,x轴表示产品销量,y轴表示产品利润,气泡大小代表产品市场份额百分比。 它可

    2024年02月08日
    浏览(33)
  • 【matplotlib 实战】--堆叠面积图

    堆叠面积图和面积图都是用于展示数据随时间变化趋势的统计图表,但它们的特点有所不同。 面积图的特点在于它能够直观地展示数量之间的关系,而且不需要标注数据点,可以轻松地观察数据的变化趋势。而堆叠面积图则更适合展示多个数据系列之间的变化趋势,它们一层

    2024年02月08日
    浏览(54)
  • 【matplotlib 实战】--堆叠柱状图

    堆叠柱状图 ,是一种用来分解整体、比较各部分的图。 与柱状图类似,堆叠柱状图常被用于比较不同类别的数值。而且,它的每一类数值内部,又被划分为多个子类别,这些子类别一般用不同的颜色来指代。 柱状图帮助我们观察“总量”,堆叠柱状图则可以同时反映“总量

    2024年02月08日
    浏览(42)
  • 【matplotlib 实战】--柱状图

    柱状图,是一种使用矩形条,对不同类别进行数值比较的统计图表。 在柱状图上,分类变量的每个实体都被表示为一个矩形(通俗讲即为“柱子”),而数值则决定了柱子的高度。 柱状图是一种用长方形柱子表示数据的图表。 它包含三个主要元素: 横轴(x轴):表示数据

    2024年02月08日
    浏览(42)
  • 【matplotlib 实战】--箱型图

    箱型图(Box Plot),也称为盒须图或盒式图,1977年由美国著名统计学家约翰·图基(John Tukey)发明。 是一种用作显示一组数据分布情况的统计图,因型状如箱子而得名。 它能显示出一组数据的最大值、最小值、中位数及上下四分位数。 箱子的顶端和底端,分别代表上下四分

    2024年02月08日
    浏览(46)
  • 【matplotlib 实战】--散点图

    散点图,又名点图、散布图、X-Y图,是将所有的数据以点的形式展现在平面直角坐标系上的统计图表。 散点图常被用于分析变量之间的相关性。 如果两个变量的散点看上去都在一条直线附近波动,则称变量之间是线性相关的; 如果所有点看上去都在某条曲线(非直线)附近

    2024年02月08日
    浏览(36)
  • 【matplotlib 实战】--直方图

    直方图 ,又称质量分布图,用于表示数据的分布情况,是一种常见的统计图表。 一般用横轴表示数据区间,纵轴表示分布情况,柱子越高,则落在该区间的数量越大。 构建直方图时,首先首先就是对数据划分区间,通俗的说即是划定有几根柱子(比如,1980年~2020年的数据,

    2024年02月08日
    浏览(60)
  • 【matplotlib 实战】--面积图

    面积图,或称区域图,是一种随有序变量的变化,反映数值变化的统计图表。 面积图也可用于多个系列数据的比较。 这时,面积图的外观看上去类似层叠的山脉,在错落有致的外形下表达数据的总量和趋势。 面积图不仅可以清晰地反映出数据的趋势变化,也能够强调不同类

    2024年02月08日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包