(美國大學(xué)生數(shù)學(xué)建模競賽研底,簡稱美賽埠偿。一共五個獎項(xiàng),分別為O飘哨,F(xiàn)胚想,M,H芽隆,S獎。 在國內(nèi)统屈,約定俗成地將這五個獎項(xiàng)分別對應(yīng)為特等獎胚吁、特等獎候選獎、一等獎愁憔、二等獎腕扶,成功參與獎,所以在保研同學(xué)的心目中吨掌,這個比賽還是很有分量的半抱。)
美賽粗略地計(jì)算一共三天。第一天我們一直在審題膜宋、選題窿侈、換題、審題秋茫、選題......反正會做的就那么幾個史简,還好整個隊(duì)伍的心理抗壓能力很好,不然第一天就結(jié)束了肛著。
第二天開始處理數(shù)據(jù)圆兵,然后交給我們隊(duì)的大佬跑結(jié)果。第三天寫論文枢贿,英語大佬滿血通宵殉农。最后獲得了一般的成績,H獎局荚。
對超凳!沒錯!看到這里,你會發(fā)現(xiàn)我就做了一件事聪建,處理數(shù)據(jù)钙畔!處理數(shù)據(jù)!金麸!處理數(shù)據(jù)G嫖觥!挥下!
嗯~o(* ̄▽ ̄*)o......我反省揍魂,我認(rèn)錯,我對不起那奮戰(zhàn)一夜的隊(duì)友棚瘟。
正文開始:???????
pyecharts——python數(shù)據(jù)可視化模塊
先給出效果圖现斋,很開心呀^_^。網(wǎng)址:pyecharts - A Python Echarts Plotting Library
例子—條形圖
首先偎蘸,團(tuán)隊(duì)在寫論文的過程中需要從時間上給出規(guī)律庄蹋,這時給出一張條形圖豈不是會加分嘛~
為了能夠?qū)?shù)據(jù)及時取出并方便管理,采用excel從里面讀出數(shù)據(jù)迷雪,所以程序要先讀表限书。
data = xlrd.open_workbook('CLTCB.xlsx') # 打開xls文件
table = data.sheets()[0] # 打開第一張表
nrows = table.nrows # 獲取表的行數(shù)
然后就用到了pyecharts,敲黑板U逻帧>胛鳌!?
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)
這么多參數(shù)赁严,一下子想問候我扰柠?別急,咱們慢慢來疼约。?
首先實(shí)例化Bar這個類卤档,也就是柱形圖/條形圖。
? Bar("TX",title_text_size=30) ?//“TX”為標(biāo)題(title),title_text_size為主標(biāo)題字體大幸湮健(int類型)
還有很多參數(shù)(副標(biāo)題裆装、標(biāo)題距離頂部距離、背景顏色倡缠、文本顏色等哨免,參考鏈接: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()函數(shù)昙沦,在給出的鏈接中叫做通用配置項(xiàng)(雖然不知道為啥叫這個)琢唾。
name列表是自己定義的,對應(yīng)的是圖例盾饮。
time也是自己寫的采桃,對應(yīng)的是橫坐標(biāo)的數(shù)據(jù)懒熙。
cols_ 是之前從表格里讀出來的,對應(yīng)的是縱坐標(biāo)的數(shù)據(jù)普办。
bar_category_gap調(diào)整的是柱形間距工扎。
mark_line、mark_point使得想要的內(nèi)容顯示出來衔蹲。
xaxis_interval調(diào)整的是橫坐標(biāo)的標(biāo)度肢娘。
xaxis_rotate調(diào)整刻度標(biāo)簽旋轉(zhuǎn)的角度。
legend_text_size調(diào)整的是圖例文本大小舆驶。
大佬的教程里面顯示要先有show_config(),然后render()結(jié)束橱健。可能是我的粗心沙廉,應(yīng)用中我只用了render()拘荡,還需要大佬指點(diǎn),文章最后會貼上所有代碼撬陵,程序運(yùn)行完珊皿,會生成一個render.html文件,圖就在里面袱结,需要請自行下載亮隙。
一個超級簡單的效果圖就出現(xiàn)啦!
還在用餅圖展示結(jié)果垢夹?NO!玫瑰圖
個人感覺是個很神奇的存在...玫瑰圖...\(^o^)/~
超喜歡的文章鏈接:Python 數(shù)據(jù)可視化维费? - 簡書?大佬的腦袋個人很想拿去上解剖課
首先果元,繼續(xù)從表格里面讀數(shù)據(jù),然后開始我們的求學(xué)之路犀盟。
data = xlrd.open_workbook('CLTCB.xlsx') # 打開xls文件
table = data.sheets()[0] # 打開第一張表
nrows = table.nrows # 獲取表的行數(shù)
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)
別急別急而晒,慢慢學(xué)?。
Pie與Bar相同阅畴,都是一個對象(我瞎說的)倡怎,首先實(shí)例化對象:
pie = Pie("TX", title_pos='left', width=900,title_text_size=40)
?"TX"為標(biāo)題(title),title_pos調(diào)整標(biāo)題位置贱枣,title_text_size調(diào)整主標(biāo)題文字大小监署,其余的,根據(jù)自己需求來調(diào)整纽哥。?
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()函數(shù)钠乏,通用配置項(xiàng),不知道大家記住沒有 春塌,“商品B”大家自行忽略......
后面的is_legend_show將圖例設(shè)為不顯示了 name為不同的屬性名稱晓避,在這里為:oil簇捍、gas、coal俏拱、clean energy
cols為從表格讀出來的暑塑,不同屬性對用的數(shù)據(jù) center為調(diào)整餅圖圓心坐標(biāo)
is_random為是否隨即排列顏色列表(bool)
radius為半徑,第一個為內(nèi)半徑锅必,第二個是外半徑
rosetype為是否展示成南丁格爾圖
'radius' 圓心角展現(xiàn)數(shù)據(jù)半分比事格,半徑展現(xiàn)數(shù)據(jù)大小
'area' 圓心角相同,為通過半徑展現(xiàn)數(shù)據(jù)大小
is_label_show為是否顯示標(biāo)簽(各個屬性的數(shù)據(jù)信息) label_text_size為調(diào)整標(biāo)簽字體大小况毅。?
這樣分蓖,一個高大上的玫瑰圖就弄好了。
?
?
我是代碼——我是代碼——我是代碼?
//這是條形圖噠
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 # 獲取表的行數(shù)
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 # 獲取表的行數(shù)
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()