数学建模 数据可视化

本文探讨了数学建模中数据可视化的关键作用,通过散点图、直方图和饼形图的实例展示了如何增强文章的视觉效果。利用matplotlib库创建了不同类型的图表,如散点图用于展示数据随时间的变化趋势,直方图用于描绘数据分布,饼形图则用于比例和分类数据的展示。这些图形有助于读者更好地理解和解读模型结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数学建模中极为重要的一点

数据可视化

说白了就是为了使整篇数学建模文章中富有颜色色彩,使得整个文章好看赏心悦目,不那么单调。因此才需要有分析图的陪衬才能使让评委给你高分,一般一篇文章中绘制5至8个图不等。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

散点图程序

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
df=pd.read_csv('H:\Python\data\\transcount.csv')
df=df.groupby('year').aggregate(np.mean)
gpu=pd.read_csv('H:\Python\data\\gpu_transcount.csv')
gpu=gpu.groupby('year').aggregate(np.mean)
df=pd.merge(df,gpu,how='outer',left_index=True,right_index=True)
df=df.replace(np.nan,0)
print df
 
years=df.index.values
counts=df['trans_count'].values
gpu_counts=df['gpu_counts'].values
cnt_log=np.log(counts)
plt.scatter(years,cnt_log,c=200*years,s=20+200*gpu_counts/gpu_counts.max(),alpha=0.5)  #表示颜色,s表示标量或数组
plt.show()

直方图程序

from matplotlib import pyplot as plt
'''
count of Petal width
''' 
file=open("../dataset/iris.txt", "r")
content = [x.rstrip("\n") for x in file]
file.close()
d_sl=[]
while '' in content:
    content.remove('')
data_slength = [x.split(',')[3] for x in content[0:]]
while '' in data_slength:
    data_slength.remove('')
for i in data_slength:
    d_sl.append(float(i))

plt.hist(d_sl,10,alpha=0.5)
plt.xlabel("Petal width")
plt.ylabel("count")
plt.show()

在这里插入图片描述

饼形图程序

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['Microsoft YaHei']  #显示中文标签,处理中文乱码问题
plt.rcParams['axes.unicode_minus']=False  #坐标轴负号的处理
plt.axes(aspect='equal')  #将横、纵坐标轴标准化处理,确保饼图是一个正圆,否则为椭圆

#构造数据
edu = [0.2515, 0.3724, 0.3336, 0.0368, 0.0057]
labels = ['中专','大专','本科','硕士','其他']
explode = [0, 0.1, 0, 0, 0]  #生成数据,用于凸显大专学历人群
colors = ['#9999ff', '#ff9999', '#7777aa', '#2442aa', '#dd5555']  #自定义颜色

plt.pie(x=edu,  #绘图数据
        explode=explode, #指定饼图某些部分的突出显示,即呈现爆炸式
        labels=labels,  #添加教育水平标签
        colors=colors,
        autopct='%.2f%%',  #设置百分比的格式,这里保留两位小数
        pctdistance=0.8,  #设置百分比标签与圆心的距离
        labeldistance=1.1,  #设置教育水平标签与圆心的距离
        startangle=180,  #设置饼图的初始角度
        radius=1.2,  #设置饼图的半径
        counterclock=False,  #是否逆时针,这里设置为顺时针方向
        wedgeprops={'linewidth':1.5, 'edgecolor':'green'},  #设置饼图内外边界的属性值
        textprops={'fontsize':10, 'color':'black'},  #设置文本标签的属性值
        )

#添加图标题
plt.title('失信用户的受教育水平分布')
#显示图形
plt.show()

在这里插入图片描述

收集了2004年(第一届)至今中(全)国研究生数学建模竞赛获奖数据,并基于R语言,进行了数据处理和可视的工作。 这项工作最初的起因是,作者和队友在2015、2016、2017年参赛并获奖后,好奇一共有少人连续获奖以及他们来自于哪个省份和学校。于是2017年底,我开始收集数据、敲代码。由于当时正值毕业,也面临着从matlab转出选语言的问题,认准R语言的我便开始使用R来写这部分代码,因此当时那一版惨不忍睹。2018年9月15日,台风山竹正面袭击广州深圳,被迫呆在家里的我,发现正好是当年落户杯开赛的日子,于是我决定把这个代码重写了一遍,并发布到github上。2020开年的新冠肺炎疫情期间,没法去办公室的我,看了Hadley 大神的Advanced R一书,并整合自己2019年所学,开始重新审视自己的编程水平,于是决定再一次修改这个代码,并且决定,以后每年都要来修改一次,以见证每年收获和进步。 关于项目的几个说明: 中国研究生数学建模竞赛(原名全国研究生数学建模竞赛),官网网址(新),官方网址(旧),2004年开办,每年9月开赛、11月~12月会公布当年获奖结果,旧网址曾经有历年数据,不过目前404了; 官方公布的获奖名单,包含一等奖、二等奖、三等奖以及成功参与(参赛、参加)奖,但是基本上参赛、提交并未被认定为作弊就能拿到成功参与奖,所以这里将获奖名单视为参赛名单,其中的一二三等奖视为获奖; 部分年份获奖名单中无题型信息,则视其题型全部为N; 对于个人“连续获奖”这个概念,每个版本可能有不同算法,但基本原则是: 鉴于信息有限,只考虑同名、同学校在连续年份的获奖情况为“连续获奖”,即忽略“山大张三在2005年获奖后转学到中大并于2006年获奖” 鉴于信息有限,不区分同名不同人、但同校名的获奖情况,即将“山大张三于2005年获奖然后另一个也叫张三的山大学生于2006年获奖”,视为连续2次获奖 如果张三于2005年获奖,并于2007、2008年获奖,则将其视为两次连续获奖,第一次为1连,第二次为2连
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值