大学中获奖的我是如何在美国数学建模比赛中划水的——分享技巧

(美国大学生数学建模竞赛,简称美赛。一共五个奖项,分别为O,F,M,H,S奖。 在国内,约定俗成地将这五个奖项分别对应为特等奖、特等奖候选奖、一等奖、二等奖,成功参与奖,所以在保研同学的心目中,这个比赛还是很有分量的。)

美赛粗略地计算一共三天。第一天我们一直在审题、选题、换题、审题、选题......反正会做的就那么几个,还好整个队伍的心理抗压能力很好,不然第一天就结束了。

第二天开始处理数据,然后交给我们队的大佬跑结果。第三天写论文,英语大佬满血通宵。最后获得了一般的成绩,H奖。

对!没错!看到这里,你会发现我就做了一件事,处理数据!处理数据!!处理数据!!!

嗯~o(* ̄▽ ̄*)o......我反省,我认错,我对不起那奋战一夜的队友。

正文开始:       

pyecharts——python数据可视化模块

先给出效果图,很开心呀^_^。网址:pyecharts - A Python Echarts Plotting Library


例子—条形图

首先,团队在写论文的过程中需要从时间上给出规律,这时给出一张条形图岂不是会加分嘛~

为了能够将数据及时取出并方便管理,采用excel从里面读出数据,所以程序要先读表。

data = xlrd.open_workbook('CLTCB.xlsx') # 打开xls文件

table = data.sheets()[0] # 打开第一张表

nrows = table.nrows # 获取表的行数

然后就用到了pyecharts,敲黑板!!!​

bar = Bar("TX",title_text_size=30)

bar.add(name[i], time, cols_,bar_category_gap='50%', mark_line=["min", "max"],mark_point=["average"],

       xaxis_interval=4, xaxis_rotate=0,legend_text_size=30)

这么多参数,一下子想问候我?别急,咱们慢慢来。​

首先实例化Bar这个类,也就是柱形图/条形图。

​ Bar("TX",title_text_size=30) ​//“TX”为标题(title),title_text_size为主标题字体大小(int类型)

还有很多参数(副标题、标题距离顶部距离、背景颜色、文本颜色等,参考链接:pyecharts - A Python Echarts Plotting Library

我们接着看下一行。

bar.add(name[i], time, cols_,bar_category_gap='50%', mark_line=["min", "max"],mark_point=["average"],

        xaxis_interval=4, xaxis_rotate=0,legend_text_size=30)​

add()函数,在给出的链接中叫做通用配置项(虽然不知道为啥叫这个)。

name列表是自己定义的,对应的是图例。

time也是自己写的,对应的是横坐标的数据。

cols_ 是之前从表格里读出来的,对应的是纵坐标的数据。

bar_category_gap调整的是柱形间距。

mark_line、mark_point使得想要的内容显示出来。

xaxis_interval调整的是横坐标的标度。

xaxis_rotate调整刻度标签旋转的角度。

legend_text_size调整的是图例文本大小。

大佬的教程里面显示要先有show_config(),然后render()结束。可能是我的粗心,应用中我只用了render(),还需要大佬指点,文章最后会贴上所有代码,程序运行完,会生成一个render.html文件,图就在里面,需要请自行下载。

一个超级简单的效果图就出现啦!


还在用饼图展示结果?NO!玫瑰图

个人感觉是个很神奇的存在...玫瑰图...\(^o^)/~

超喜欢的文章链接:Python 数据可视化? - 简书 大佬的脑袋个人很想拿去上解剖课

首先,继续从表格里面读数据,然后开始我们的求学之路。

data = xlrd.open_workbook('CLTCB.xlsx') # 打开xls文件

table = data.sheets()[0] # 打开第一张表

nrows = table.nrows # 获取表的行数

cols_ = table.col_values(i)​

pie = Pie("TX", title_pos='left', width=900,title_text_size=40)

#pie.add("商品A", attr, v1, center=[25, 50], is_random=False, radius=[30, 75], rosetype='radius')

pie.add("商品B", name, cols_, center=[50, 50], is_random=False, radius=[30, 75], rosetype='area',

        is_legend_show=False, is_label_show=True,label_text_size=28)

别急别急,慢慢学​。

Pie与Bar相同,都是一个对象(我瞎说的),首先实例化对象:

pie = Pie("TX", title_pos='left', width=900,title_text_size=40)

 "TX"为标题(title),title_pos调整标题位置,title_text_size调整主标题文字大小,其余的,根据自己需求来调整。​

pie.add("商品B", name, cols_, center=[50, 50], is_random=False, radius=[30, 75], rosetype='area',

        is_legend_show=False, is_label_show=True,label_text_size=28)

add()函数,通用配置项,不知道大家记住没有 ,“商品B”大家自行忽略......

后面的is_legend_show将图例设为不显示了 name为不同的属性名称,在这里为:oil、gas、coal、clean energy

cols为从表格读出来的,不同属性对用的数据 center为调整饼图圆心坐标

is_random为是否随即排列颜色列表(bool)

radius为半径,第一个为内半径,第二个是外半径

rosetype为是否展示成南丁格尔图

'radius' 圆心角展现数据半分比,半径展现数据大小

'area' 圆心角相同,为通过半径展现数据大小

is_label_show为是否显示标签(各个属性的数据信息) label_text_size为调整标签字体大小。​

这样,一个高大上的玫瑰图就弄好了。


我是代码——我是代码——我是代码​

//这是条形图哒

import xlrd

import matplotlib.pyplot as plt

from pyecharts import Bar

data = xlrd.open_workbook('CLTCB.xlsx') # 打开xls文件

table = data.sheets()[0] # 打开第一张表

nrows = table.nrows # 获取表的行数

name = ['Oil','Natural Gas','Coal','Clean Energy']

time = []

for j in range(1960,2010):

    time.append(j)

i = 0

num = i + 221

#plt.subplot(num)

cols_ = table.col_values(i)

bar = Bar("TX",title_text_size=30)

bar.add(name[i], time, cols_,bar_category_gap='50%', mark_line=["min", "max"],mark_point=["average"],

        xaxis_interval=4, xaxis_rotate=0,legend_text_size=30)

    #bar.add("商家B", time, v2, mark_line=["min", "max"])

bar.render()

​//这里是玫瑰图的代码

from pyecharts import Pie

import xlrd

i = 3

data = xlrd.open_workbook('CLTCB.xlsx') # 打开xls文件

table = data.sheets()[0] # 打开第一张表

nrows = table.nrows # 获取表的行数

cols_ = table.col_values(i)

print(len(cols_))

name = ['Oil','Natural Gas','Coal','Clean Energy']

states = ['AZ','CA','NM','TX']

#v1 = [11, 12, 13, 10, 10, 10]

#v2 = [19, 21, 32, 20, 20, 33]

pie = Pie("TX", title_pos='left', width=900,title_text_size=40)

pie.add("商品B", name, cols_, center=[50, 50], is_random=False, radius=[30, 75], rosetype='area',

        is_legend_show=False, is_label_show=True,label_text_size=28)

pie.show_config()

pie.render()


最后,我希望大家能多多评论我的文章,因为我想每篇文章都比之前做得好,感谢大家啦!​

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容