多维度展示C罗生涯36冠

58 阅读7分钟

多维度展示C罗生涯36冠

前言

如果要说程序员和运动员有什么共性的话,那我觉得年龄焦虑肯定算一条。就像35岁对绝大多数程序员来说是一道坎一样,年龄对大多数运动员来说也是一道坎。职场上,大龄程序员是少见的,运动场上,大龄运动员也是少见的。

所以,每当我们见到一个大龄运动员,还在运动场上拼搏,不管结果如何,都会觉得,这和35+岁程序员一样,很棒。乒乓球的倪夏莲,体操的丘索维金娜,篮球的詹姆斯,足球的C罗,都是
such a great player!。当然本文不谈年龄焦虑问题,那不是我的领域。

伟大的程序员用代码改变世界,我不伟大,一个普通的35+大龄前端程序员(目前还没失业)。非科班出身,水平不算好(平常挺羡慕那些非科班出身一路干到大厂的牛人);但确实挺喜欢当程序员的(胸无大志,经常被批),喜欢用代码描述世界。正好看到了C罗夺取生涯第36冠的新闻,所以就突发奇想,如何展示C罗这36冠呢?

原始数据

扒拉了几篇新闻,找到了大概的数据。原始数据我们一般用表格来展示,这里用Markdown表格来展示(不支持的markdown的只能截图了)。

年份级别俱乐部赛事
2025国家队欧国联
2019国家队欧国联
2016国家队欧洲杯
2002俱乐部葡萄牙体育(葡萄牙)葡萄牙超级杯
2007俱乐部曼联(英国)英超
2008俱乐部曼联(英国)英超
2009俱乐部曼联(英国)英超
2008俱乐部曼联(英国)欧冠
2008俱乐部曼联(英国)世俱杯
2004俱乐部曼联(英国)足总杯
2006俱乐部曼联(英国)联赛杯
2009俱乐部曼联(英国)联赛杯
2007俱乐部曼联(英国)社区盾
2008俱乐部曼联(英国)社区盾
2012俱乐部皇马(西班牙)西甲
2017俱乐部皇马(西班牙)西甲
2014俱乐部皇马(西班牙)欧冠
2016俱乐部皇马(西班牙)欧冠
2017俱乐部皇马(西班牙)欧冠
2018俱乐部皇马(西班牙)欧冠
2014俱乐部皇马(西班牙)世俱杯
2016俱乐部皇马(西班牙)世俱杯
2017俱乐部皇马(西班牙)世俱杯
2015俱乐部皇马(西班牙)欧洲超级杯
2017俱乐部皇马(西班牙)欧洲超级杯
2018俱乐部皇马(西班牙)欧洲超级杯
2011俱乐部皇马(西班牙)国王杯
2014俱乐部皇马(西班牙)国王杯
2013俱乐部皇马(西班牙)西班牙超级杯
2018俱乐部皇马(西班牙)西班牙超级杯
2019俱乐部尤文图斯(意大利)意甲
2020俱乐部尤文图斯(意大利)意甲
2019俱乐部尤文图斯(意大利)意大利超级杯
2021俱乐部尤文图斯(意大利)意大利超级杯
2021俱乐部尤文图斯(意大利)意大利杯
2023俱乐部利雅得胜利(沙特阿拉伯)阿拉冠

数据挖掘和数据可视化

工作汇报的时候,你要是直接把原始数据给领导看,估计大概率领导会把报告甩你脸上。所以拿到原始数据后,我们一般会进行数据挖掘和分析,用可视化的方式来展示多个维度的数据。

按年份统计

按照年份统计,可以清晰展示C罗波澜壮阔的职业生涯。就像我们在程序架构设计中,用时序图、序列图来展示业务按时间节点交互变化一样。

按时间顺序统计数据
年份级别俱乐部赛事类别
2002俱乐部葡萄牙体育(葡萄牙)葡萄牙超级杯
2004俱乐部曼联(英国)足总杯
2006俱乐部曼联(英国)联赛杯
2007俱乐部曼联(英国)英超
2007俱乐部曼联(英国)社区盾
2008俱乐部曼联(英国)英超
2008俱乐部曼联(英国)欧冠
2008俱乐部曼联(英国)世俱杯
2008俱乐部曼联(英国)社区盾
2009俱乐部曼联(英国)英超
2009俱乐部曼联(英国)联赛杯
2011俱乐部皇马(西班牙)国王杯
2012俱乐部皇马(西班牙)西甲
2013俱乐部皇马(西班牙)西班牙超级杯
2014俱乐部皇马(西班牙)欧冠
2014俱乐部皇马(西班牙)世俱杯
2014俱乐部皇马(西班牙)国王杯
2015俱乐部皇马(西班牙)欧洲超级杯
2016国家队欧洲杯
2016俱乐部皇马(西班牙)欧冠
2016俱乐部皇马(西班牙)世俱杯
2017俱乐部皇马(西班牙)西甲
2017俱乐部皇马(西班牙)欧冠
2017俱乐部皇马(西班牙)世俱杯
2017俱乐部皇马(西班牙)欧洲超级杯
2018俱乐部皇马(西班牙)欧冠
2018俱乐部皇马(西班牙)欧洲超级杯
2018俱乐部皇马(西班牙)西班牙超级杯
2019国家队欧国联
2019俱乐部尤文图斯(意大利)意甲
2019俱乐部尤文图斯(意大利)意大利超级杯
2020俱乐部尤文图斯(意大利)意甲
2021俱乐部尤文图斯(意大利)意大利超级杯
2021俱乐部尤文图斯(意大利)意大利杯
2023俱乐部利雅得胜利(沙特阿拉伯)阿拉冠
2025国家队欧国联
用时间线图展示数据

用时间线图,能清晰直观地全景展示每个年份的数据。本文采用mermaid的时间线图来展示,有兴趣的同学可以考虑用echarts、d3.js等可视化库来展示。

timeline
    title C罗生涯36冠
    section 葡萄牙体育时期
        2002: 葡萄牙超级杯
    section 曼联时期
        2004: 足总杯
        2006: 联赛杯
        2007: 英超
                : 社区盾
        2008: 英超
                : 欧冠
                : 世俱杯
                : 社区盾
        2009: 英超: 联赛杯
    section 皇马时期
        2011: 国王杯
        2012: 西甲
        2013: 西班牙超级杯
        2014: 欧冠: 世俱杯: 国王杯
        2015: 欧洲超级杯
        2016: 欧洲杯: 世俱杯
        2017: 西甲: 欧冠: 世俱杯: 欧洲超级杯
    section 尤文图斯时期
        2019: 欧国联: 意甲: 意大利超级杯
        2020: 意甲: 意大利超级杯
        2021: 意大利超级杯
    section 利雅得胜利时期
        2023: 阿拉冠
        2025: 欧国联
利用柱状图折线图展示每年的数据

利用柱状图或折线图,能清晰地展示每个年份的数据,并且能清晰地展示数据的变化趋势。简单的展示可以使用mermaid,复杂的、自定义样式,可以使用echarts或d3.js。

mermaid-diagram-2025-06-10-164208.png

按俱乐部统计数据

也可以按俱乐部来统计数据,看看C罗的职业生涯的巅峰期在哪个俱乐部。单纯展示数据的话,柱状图、折线图、饼状图都可以,笔者突发奇想,使用雷达图,看看效果。还是照旧,简单的雷达图可以使用mermaid(11.6+),复杂的、自定义样式,可以使用echarts或d3.js。

mermaid-diagram-2025-06-10-164053.png

笔者又来了一波脑洞,觉得在地图上展示数据也是个不错的选择。用echarts或d3.js均可。

map.png

总结

mermaid是个很棒的工具,可以快速生成各种图,适合项目经理,产品经理,架构师,程序员做流程图,架构图,甘特图等,如果想要专业的图,可以尝试使用echarts或d3.js。