[数学建模]python画图基本技术路线初探
引言
在尝试了包括MATLAB在内的常用数学建模工具后,我最终选择了python来进行数据的处理和可视化工作,这里面有几点原因:
- MATLAB能做的事python能做吗?能,虽然有些事不如MATLAB方便但是python的各种库的支持都相当完善,完全可以应对数学建模的需求。
- MATLAB的市场占有率高很大程度上是由于市场惯性,因为MATLAB是个相当古老的软件,所以老的数模资料和培训老师都喜欢采用,代代相传,并不是因为MATLAB本身具有python无法替代的优势。
- MATLAB是个商业软件,应用范围远远不如python广泛。python语法优美,简单易学,广受欢迎。除了数学建模之外在其它相当多的领域中都有应用。
”找个理由学点东西“是我学习数学建模的初心,目的不在于拿奖。作为数学建模竞赛和python的双重萌新,我想通过一系列的博文来记录自己的学习。
技术路线初探
经过一个下午的简单摸索,我初步了解了处理数据的大体框架。
下面是一个读取“24届CSP总榜”这一excel文件,筛选出西安电子科技大学的250分以上的学生,并绘制柱状图的简单程序。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
df1=pd.read_excel("总榜.xlsx")#从文件中获取数据
list1=[]
list2=[]
for i in range(df1.shape[0]):
if df1.loc[i][2]=="西安电子科技大学" and df1.loc[i][3]>250:
list1.append(df1.loc[i][1])
list2.append(df1.loc[i][3])
plt.bar(list1,list2)
plt.xlabel("姓名")
plt.ylabel("分数")
plt.title("CSP分数柱状图")
plt.show()
最后的结果如下图:
我们可以从这段非常简短的代码中一窥用python进行数据可视化的工作流程:读入数据,处理数据,数据可视化。
这里面有几个库相当重要,需要重点学习:
- numpy #NumPy是用Python进行科学计算的基础软件包。
- pandas #从各种数据表中读入数据
- matplotlib.pyplot #利用python绘制各种2D数据图
学习一种语言或者一个库最好从官网或者各种实例入手。
也可以从菜鸟教程之类的网站开始学习,我个人的习惯是需要用到什么功能就去直接问搜索引擎QAQ,这种问题导向的学习虽然不扎实,很容易忘记函数与功能的对应关系,但不会被正统教程的庞大篇幅搞得眼花缭乱而丧失学习下去的信心,正反馈更强。
包括写博文也是加强正反馈的一种手段。
当然这只是在编程,运算,画图方面的技术路线,还有写论文需要用到的LaTeX和真正核心的建模,我也会抽时间学习整理,更新频率视我个人的学习进度而定(咕咕咕,能周更就算胜利。