import requests import json r = requests.get('http://data.coa.gov.tw/Service/OpenData/FromM/FarmTransData.aspx') text = json.loads(r.text) for row in text: if '百香果' in row['作物名稱']: print ('交易日期:'+row['交易日期']) print ('作物名稱:'+row['作物名稱']) print ('市場名稱:'+row['市場名稱']) print ('平均價:'+str(row['平均價'])) print ('交易量:'+str(row['交易量']))
2019年11月16曾介紹pyecharts套件的使用,在"初體驗! 使用pyecharts以水果交易行情為例"文章中,僅9行程式就能畫出台北一和台北二果菜場的交易,其程式如下:
from pyecharts.charts import Bar from pyecharts import options as opts from pyecharts.globals import ThemeType bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)) bar.add_xaxis(["椪柑", "蘋果 富士進口", "番石榴 珍珠芭", "香蕉", "木瓜 網室紅肉", "甜橙 柳橙", "火龍果 紅肉"]) bar.add_yaxis("台北一", [29.3, 51.5, 40.3, 21.6, 24.0, 61.5, 34.2]) bar.add_yaxis("台北二", [32.3, 51.4, 53.7, 24.7, 42.3, 23.4, 35.9]) bar.set_global_opts(title_opts=opts.TitleOpts(title="平均價", subtitle="元")) bar.render()
從以上兩篇文章的程式即可以組合新的程式,程式技巧利用三個變數,分別來儲存X軸資料(作物名稱以及市場名場)以及兩個Y軸的資料(平均價和交易量),本範例的農作物改用玫瑰,其程式(黃底字是有改變的地方)如下:
import requests import json r = requests.get('http://data.coa.gov.tw/Service/OpenData/FromM/FarmTransData.aspx') text = json.loads(r.text) xaxis=[] yaxis1=[] yaxis2=[] for row in text: if '玫瑰' in row['作物名稱']: print ('交易日期:'+row['交易日期']) print ('作物名稱:'+row['作物名稱']) print ('市場名稱:'+row['市場名稱']) print ('平均價:'+str(row['平均價'])) print ('交易量:'+str(row['交易量'])) xaxis.append(row['作物名稱']+row['市場名稱']) yaxis1.append(row['平均價']) yaxis2.append(row['交易量']) from pyecharts.charts import Bar from pyecharts import options as opts from pyecharts.globals import ThemeType bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)) bar.add_xaxis(xaxis) bar.add_yaxis("平均價", yaxis1) bar.add_yaxis("交易量", yaxis2) bar.set_global_opts(title_opts=opts.TitleOpts(title="平均價", subtitle="元")) bar.render()
執行結果:
沒有留言:
張貼留言