高级可视化图表分析实践——以《大侠立志传》武器系统为例

引言

引言:当武侠世界遇见数据可视化
在开放世界武侠游戏《大侠立志传》中,武器系统是构建角色成长体系的重要模块。本文将以游戏内192件武器数据为样本,通过5种高级可视化图表矩形树图、蜂群图、桑基图、词云图、离散热力图),深入解析武器系统的设计逻辑,同时熟悉高级可视化图表的制作(python)和作用。

武器类型分布

矩形树图

所有品级武器数量分布
所有品级武器数量分布图
甲级武器数量分布
甲级武器数量分布

乙级武器数量分布
乙级武器数量分布
丙级武器数量分布
丙级武器数量分布
丁级武器数量分布
丁级武器数量分布

结论

  • 剑和刀是最常见的武器,剑和刀各有24个,是图中数量最多的两种武器类型。
  • 锤、长弓、火焰令和笑傲江湖的数量非常少。锤有2个,长弓有1个,火焰令有1个,笑傲江湖有1个。
  • 整体分布不均匀,少数几种武器占据了较大的比例,而其他类型的武器则相对较少。

不同品质/类别武器的攻击力分布情况

蜂群图

不同品质/类别武器的攻击力分布情况

分析结论

  • 品质越高,攻击力普遍越高。
  • 丁级武器攻击力整体偏低。
  • 武器类型对攻击力分布的影响不大,相同品质下攻击力整体相同。

武器来源

桑基图

桑基图

分析结论

  • 品级越高(甲、乙),获取方式越依赖 任务/事件 或 战斗掉落,符合高风险高回报机制。
  • 品级越低(丙、丁),获取方式越依赖 合成 或 商店,可能为普通或基础装备。

武器附加属性

词云图

武器附加属性

分析结论

多个攻击类词汇集中在中心且字号较大,说明攻击强化是武器属性的主要设计方向。

不同品级武器装备熟练度要求/特质要求

离散热力图

不同品级武器装备熟练度要求
不同品级武器装备特质要求

结论

品质与熟练度的正相关性

  • 趋势:品质等级(丁→丙→乙→甲)与所需熟练度呈显著正相关。
  • 丁级:熟练度普遍为 0-5。
  • 丙级:熟练度提升至 5-10。
  • 乙级:熟练度显著提高至 40-50。
  • 甲级:熟练度达到 80-150。

品质与熟练度的非线性关系

  • 跃升式增长:从丁到丙、乙到甲的熟练度增幅更大(如丁→丙:+5;乙→甲:+30-110),说明高品质装备对熟练度要求陡增。

装备品质与需求特质的正相关性

  • 随着装备品质从 丁→甲 升级,需求特质值显著增加
  • 丁级、丙级装备:普遍无需求特质。
  • 乙级装备:开始有需求特质值,大多数装备需求特质值要求3,少数要求5。
  • 甲级装备:大多数装备需求特质值达到10,少数装备要求8或15。

不同装备类型对需求特质的类型要求

1.物理近战武器(拳掌/剑/刀/枪/棍)​:
​核心特质​:臂力、体质、敏捷。
​具体分布​

  • ​拳掌类​:以臂力为主(3/6),其次是体质(2/6)和敏捷(1/6)。
  • ​剑类​:臂力(4/8)和体质(3/8)并重,敏捷次之(2/8)。
  • ​刀类​:体质需求最高(4/7),臂力(2/7)和敏捷(2/7)均衡。
  • 枪类​:臂力(2/4)为主,体质(1/4)和敏捷(1/4)辅助。
  • ​棍类​:完全依赖臂力(4/4),无其他特质需求。 ​

规律​:
物理武器普遍需要臂力​(力量型输出),部分依赖体质​(生存能力)或敏捷​(灵活性)。棍类因高力量需求成为臂力特化武器。

2.轻型武器(匕首/扇子/短兵):​​
​核心特质​:敏捷主导。
​具体分布​:

  • ​匕首类​:敏捷占比最高(3/5),臂力(1/5)和体质(1/5)次要。
  • ​扇子类​:特质分布较均衡(臂力、体质、敏捷各1/3)。
  • ​火焰令/飞雪寒霜刃​:全部需求敏捷。

​规律​:
轻型武器更依赖敏捷​(快速攻击或闪避),部分兼顾臂力或体质。

其他武器(毛笔/琴/箫笛/琵琶)​​

  • 核心特质​:悟性、福缘。

  • 具体分布​: ​毛笔​:悟性和福缘各占一半。 ​琴/琵琶​:悟性(3/5)为主,敏捷(2/5)次之。

​规律​
毛笔/琴/箫笛/琵琶需求的特质更依赖与悟性与福源。

使用python制作上述图表

矩形树图

import squarify
import matplotlib.pyplot as plt
import matplotlib.cm as cm
from pylab import *
mpl.rcParams['font.sans-serif']=['SimHei']
# 示例数据(类别名称和对应的值)
data = [10, 20, 30, 40]
labels = ['A', 'B', 'C', 'D']

# 生成颜色(根据值的大小映射到viridis色系)
colors = cm.viridis([x / max(data) for x in data])

# 创建标签(显示名称和数值)
labels_with_values = [f"{
     
     label}\n{
     
     val}" for label, val in zip(labels, data)]

# 绘制矩形树图
plt.figure(figsize=(10, 6))
squarify.plot(
    sizes=data,
    label=labels_with_values,
    color=colors,
    alpha=0.6,     # 透明度
    pad=True       # 矩形间留空隙
)
plt.axis('off')    # 关闭坐标轴
plt.title('矩形树图示例')
plt.show()

在这里插入图片描述

蜂群图

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

# 设置中文字体(Windows用SimHei,macOS用STHeiti)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 生成示例数据
np.random.seed(42)
data = {
   
   
    '类别': np.repeat(['A组', 'B组', 'C组'], 50),
    '数值': np.concatenate([
        np.random.normal(90, 10, 50),
        np.random.normal(60, 15, 50),
        np.random.normal(75, 5, 50)
    ])
}

# 创建画布
plt.figure(figsize=(10, 6))

# 绘制蜂群图
sns.swarmplot(
    x='类别',
    y='数值',
    data=data,
    size=6,          # 点的大小
    palette='Set2',  # 颜色方案
    edgecolor='black',  # 点边缘颜色
    linewidth=0.5     # 边缘线宽
)

# 添加标题和标签
plt.title
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

像素艺术家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值