【毕业设计】奥运会数据分析与可视化 - python 大数据

这篇具有很好参考价值的文章主要介绍了【毕业设计】奥运会数据分析与可视化 - python 大数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


1 简介

🔥 Hi,大家好,这里是丹成学长的毕设系列文章!

🔥 对毕设有任何疑问都可以问学长哦!

这两年开始,各个学校对毕设的要求越来越高,难度也越来越大… 毕业设计耗费时间,耗费精力,甚至有些题目即使是专业的老师或者硕士生也需要很长时间,所以一旦发现问题,一定要提前准备,避免到后面措手不及,草草了事。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的新项目是

🚩 奥运会数据集分析

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:4分
  • 工作量:4分
  • 创新点:3分

🧿 选题指导, 项目分享:

https://gitee.com/yaa-dc/BJH/blob/master/gg/cc/README.md

2 导入包+基本的数据处理

from plotly import __version__
print (__version__)
from plotly.offline import init_notebook_mode, iplot
init_notebook_mode(connected=True)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from plotly.graph_objs import *
import colorlover as cl
# import seaborn as sns
# color = sns.color_palette()
f_p = '/home/kesci/input/olympic/athlete_events.csv'
athlete_events = pd.read_csv(f_p)

【毕业设计】奥运会数据分析与可视化 - python 大数据

3 生成奥运会运动项目的词云

from wordcloud import WordCloud, STOPWORDS
stopwords = set(STOPWORDS)

def show_wordcloud(data, title = None):
    wordcloud = WordCloud(
        background_color='white',
        stopwords=stopwords,
        max_words=200,
        max_font_size=40, 
        scale=3,
        random_state=1 # chosen at random by flipping a coin; it was heads
        ).generate(str(data))

    fig = plt.figure(1, figsize=(15, 15))
    plt.axis('off')
    if title: 
        fig.suptitle(title, fontsize=20)
        fig.subplots_adjust(top=2.3)

    plt.imshow(wordcloud)
    plt.show()

show_wordcloud(athlete_events['Sport'], title = "往届奥运比赛项目词云")

【毕业设计】奥运会数据分析与可视化 - python 大数据

4 查看参赛者的男女基本信息

fig = {
  "data": [{
      "values": athlete_events['Sex'].value_counts(),
      "labels": ["男性", "女性",],
      "marker": {'colors': cl.scales['5']['div']['PuOr']},
      "name": "参赛者的男女比例",
      "hoverinfo":"label+percent+name",
      "hole": .4,
      "type": "pie"
  }],"layout": {"title":"参赛者的男女比例"}
}
iplot(fig, filename='donut')

【毕业设计】奥运会数据分析与可视化 - python 大数据
【毕业设计】奥运会数据分析与可视化 - python 大数据
【毕业设计】奥运会数据分析与可视化 - python 大数据

5 在120年来Top 20得金牌最多的国家

# 根据奖牌类型分组,分别计算每个国家的不同奖牌数并给予这列数值'Medal_Count'的列名。
country_medal = athlete_events.groupby(by = ['Medal']).Team.value_counts().reset_index(name = 'Medal_Count')
# 筛选出金牌类型的df,根据字段Medal_Count降序排列国家,选出前20个记录。
top20_country_medal = country_medal[country_medal.Medal == 'Gold'].sort_values(by = ['Medal_Count'], ascending = False).head(20)

# 绘制柱状图📊
trace = Bar(
    x = top20_country_medal.Team,
    y = top20_country_medal.Medal_Count,
    marker = dict(color = cl.scales['11']['div']['PuOr'], reversescale = True)
    )
layout = Layout(title = "Top 20 的金牌数🏅最多的国家") # 设置layout

data = [trace]
fig = Figure(data = data, layout = layout)
iplot(fig)

【毕业设计】奥运会数据分析与可视化 - python 大数据

6 中国历届奥运会运动员获得奖牌人数

china = athlete_events[athlete_events.Team == 'China']

china_medal = china.groupby(by = 'Year').Medal.value_counts().reset_index(name = "medal_count")

y0 = china_medal[china_medal.Medal == 'Gold'].medal_count
x0 = china_medal[china_medal.Medal == 'Gold'].Year
y1 = china_medal[china_medal.Medal == 'Silver'].medal_count
x1 = china_medal[china_medal.Medal == 'Silver'].Year
y2 = china_medal[china_medal.Medal == 'Bronze'].medal_count
x2 = china_medal[china_medal.Medal == 'Bronze'].Year

x = china_medal.Year

trace0 = Bar(
    x = x0, 
    y = y0, 
    name = 'Gold',
    text = y0,
    textposition = 'auto',
    marker=dict(
        color='gold',
        line=dict(
            color='rgb(8,48,107)',
            width=1.5),
        ),
    opacity=0.6
    )
    
trace1 = Bar(
    x = x1,
    y = y1,
    name = 'Silver',
    text = y1,
    textposition = 'auto',
    marker=dict(
        color = 'silver',
        line=dict(
            color='rgb(8,48,107)',
            width=1.5),
        ),
    opacity=0.6
    )
    
trace2 = Bar(
    x = x2,
    y = y2,
    name = 'Bronze',
    text = y2,
    textposition = 'auto',
    marker=dict(
        color='olive',
        line=dict(
            color='rgb(8,48,107)',
            width=1.5),
        ),
    opacity=0.6
    )
    
data = [trace0, trace1, trace2]
layout = Layout(
    barmode='group',
    width=800,
    hovermode='closest',
    title = '中国历届奥运会运动员获得 金牌🏅 银牌🥈 铜牌🥉 的人数'
    )
fig = Figure(data = data, layout = layout)
iplot(fig)

【毕业设计】奥运会数据分析与可视化 - python 大数据

7 Top 10 中国🇨🇳的强项运动项目

# 根据运动项目group,分别计算group内的值之合
china_sports = china_gold.groupby(by = 'Sport',as_index=False).Medal.agg('sum') 
# 按从大到小的顺序排序
china_sports = china_sports.sort_values(['Medal'], ascending= False)
# 选出前10的运动项目
top10_china_sports = china_sports.head(10)

# 定义颜色盘
colors = ['#91BBF4', '#91F4F4', '#F79981', '#F7E781', '#C0F781','rgb(32,155,160)', 'rgb(253,93,124)', 'rgb(28,119,139)', 'rgb(182,231,235)', 'rgb(35,154,160)']

n_phase = top10_china_sports.Sport.shape[0]
plot_width = 200 # 绘制宽度
section_h = 100  # section的高度
section_d = 15   # sections之间的间隔

# 用来计算其他section的宽度的乘系数
unit_width = plot_width / max(top10_china_sports['Medal'])   # 200 / 56 = 3.57
# 每个漏斗部分相对于绘图宽度的宽度
phase_w = [int(v * unit_width) for v in top10_china_sports['Medal']] 
# 绘制图的总高度
height = section_h * n_phase + section_d * (n_phase - 1)  

shapes = [] # 列表存储所有的绘制形状
label_y = [] # 列表存储每个section的name、value文本的Y轴地址

for i in range(n_phase):
    if(i == n_phase - 1):
        points = [phase_w[i] / 2, height, phase_w[i] / 2, height - section_h]
    else:
        points = [phase_w[i] / 2, height, phase_w[i+1] / 2, height - section_h] 
        
    path = 'M {0} {1} L {2} {3} L -{2} {3} L -{0} {1} Z'.format(*points)
    
    shape = {
                'type': 'path',
                'path': path,
                'fillcolor': colors[i],
                'line': {
                    'width': 1,
                    'color': colors[i]
                }
        }
    shapes.append(shape)
    
    # Y-axis location for this section's details (text)
    label_y.append(height - (section_h / 2))

    height = height - (section_h + section_d)

label_trace = Scatter(
    x=[-200]*n_phase,
    y=label_y,
    mode='text',
    text= top10_china_sports['Sport'],
    textfont=dict(
        color='rgb(200,200,200)',
        size=15
    )
)  

# For phase values
value_trace = Scatter(
    x=[-350]*n_phase,
    y=label_y,
    mode='text',
    text=top10_china_sports['Medal'],
    textfont=dict(
        color='rgb(200,200,200)',
        size=12
    )
)

data = [label_trace, value_trace]
 
layout = Layout(
    title="<b>Top 10 中国🇨🇳的强项运动项目</b>",
    titlefont=dict(
        size=12,
        color='rgb(203,203,203)'
    ),
    shapes=shapes,
    height=600,
    width=800,
    showlegend=False,
    paper_bgcolor='rgba(44,58,71,1)',
    plot_bgcolor='rgba(44,58,71,1)',
    xaxis=dict(
        showticklabels=False,
        zeroline=False,
    ),
    yaxis=dict(
        showticklabels=False,
        zeroline=False
    )
)
 
fig = Figure(data=data, layout=layout)
iplot(fig)

【毕业设计】奥运会数据分析与可视化 - python 大数据文章来源地址https://www.toymoban.com/news/detail-450783.html

8 最后

到了这里,关于【毕业设计】奥运会数据分析与可视化 - python 大数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 毕业设计 基于大数据的共享单车数据分析

    Hi,大家好,这里是丹成学长,今天向大家介绍一个学长做的数据分析项目,基于大数据的共享单车数据分析 毕设帮助,开题指导,资料分享,疑问解答(见文末) 🧿 选题指导, 项目分享:见文末 公共交通工具的“最后一公里”是城市居民出行采用公共交通出行的主要障碍,

    2024年04月27日
    浏览(31)
  • 【毕业设计】 大数据地铁客流数据分析系统 - python

    🔥 Hi,大家好,这里是丹成学长的毕设系列文章! 🔥 对毕设有任何疑问都可以问学长哦! 这两年开始,各个学校对毕设的要求越来越高,难度也越来越大… 毕业设计耗费时间,耗费精力,甚至有些题目即使是专业的老师或者硕士生也需要很长时间,所以一旦发现问题,一定

    2023年04月08日
    浏览(32)
  • 【毕业设计】大数据房价数据分析可视化 - python

    🔥 Hi,大家好,这里是丹成学长的毕设系列文章! 🔥 对毕设有任何疑问都可以问学长哦! 这两年开始,各个学校对毕设的要求越来越高,难度也越来越大… 毕业设计耗费时间,耗费精力,甚至有些题目即使是专业的老师或者硕士生也需要很长时间,所以一旦发现问题,一定

    2024年02月02日
    浏览(35)
  • 大数据毕业设计 小红书数据分析与可视化

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月07日
    浏览(27)
  • 【毕业设计】大数据睡眠数据分析与可视化 - python

    🔥 Hi,大家好,这里是丹成学长的毕设系列文章! 🔥 对毕设有任何疑问都可以问学长哦! 这两年开始,各个学校对毕设的要求越来越高,难度也越来越大… 毕业设计耗费时间,耗费精力,甚至有些题目即使是专业的老师或者硕士生也需要很长时间,所以一旦发现问题,一定

    2024年02月09日
    浏览(34)
  • python毕业设计 医学大数据分析 - 心血管疾病分析

    # 1 前言 🚩 基于大数据的心血管疾病分析 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 选题指导,项目分享: https://gitee.com/yaa-dc/warehouse-1/blob/master/python/README.md 本项目的任务是利用患者的检查结果预测心血管疾病(CVD)的存在与否。

    2024年02月10日
    浏览(27)
  • 【毕业设计】大数据心血管疾病数据分析(医学大数据分析)

    🔥 Hi,大家好,这里是丹成学长的毕设系列文章! 🔥 对毕设有任何疑问都可以问学长哦! 这两年开始,各个学校对毕设的要求越来越高,难度也越来越大… 毕业设计耗费时间,耗费精力,甚至有些题目即使是专业的老师或者硕士生也需要很长时间,所以一旦发现问题,一定

    2024年02月04日
    浏览(32)
  • 毕业设计 基于大数据的旅游数据分析与可视化系统

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2023年04月26日
    浏览(69)
  • python毕业设计 大数据房价数据分析及可视化 房价分析

    房地产是促进我国经济持续增长的基础性、主导性产业。如何了解一个城市的房价的区域分布,或者不同的城市房价的区域差异。如何获取一个城市不同板块的房价数据? 本项目利用Python实现某一城市房价相关信息的爬取,并对爬取的原始数据进行数据清洗,存储到数据库中

    2024年02月09日
    浏览(38)
  • 【毕业设计】大数据B站用户数据情感分析系统 - python

    🔥 Hi,大家好,这里是丹成学长的毕设系列文章! 🔥 对毕设有任何疑问都可以问学长哦! 这两年开始,各个学校对毕设的要求越来越高,难度也越来越大… 毕业设计耗费时间,耗费精力,甚至有些题目即使是专业的老师或者硕士生也需要很长时间,所以一旦发现问题,一定

    2023年04月12日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包