我用Python幫朋友作了張豬肉數據分析圖,結果。。。

卻發現他是這麼拿我當兄弟的python

事情的通過是這樣的:git

 

我開開心心的去一家燒餅店吃飯github

json


 

 

 

擡頭一看,二師兄又漲價了api

 

嘆了口氣,再這麼下去真的要吃不起夾肉的燒餅了微信

 

點了兩個燒餅一碗餛飩app

 

快吃完的時候,收到了朋友阿東的微信異步

 

阿東是我初中同窗,好些日子沒聯繫了區塊鏈

 

 

眼瞅着他快聊到區塊鏈了,雖然這事不靠譜,但仍是答應了阿東幫他作圖。字體

 

我趕忙吃完最後一口,回公司,決定不午睡了。

 

開工!

 

阿東想要這樣的圖:

 

 

折線圖嘛,先獲取數據吧

 

正好圖片中顯示了數據來源:「中國養豬網」

 

打開官網,找到並跳轉到豬價網址 http://zhujia.zhuwang.cc/

 

 

F12,Network查看異步請求XHR,成功找到價格接口。

 

 

新標籤頁打開,在線解析Json數據,不瞭解這塊知識的朋友能夠點擊 在python裏玩轉Json數據

 

 

部分爬蟲代碼(完整代碼見文末下載地址):

 

def get_comments(url):
    doc = get_json(url)
    dic = {}
    dic['pigprice'] = doc['pigprice']
    dic['pig_in'] = doc['pig_in']
    dic['pig_local'] = doc['pig_local']
    dic['maizeprice'] = doc['maizeprice']
    dic['bean'] = doc['bean']
    a = '-'.join(doc['time'][3])
    b = time.strftime('%Y-%m-%d',time.localtime(time.time()))
    print(dateRange(a,b))
    dic['time'] = dateRange(a,b)
    return pd.DataFrame(dic)

data =get_comments('http://zhujia.zhuwang.cc/index/api/chartData?areaId=-1&aa=1571997555296')

 

運行結果:

 

 

成功獲取最近一年的各類價格√

 

下面開始給阿東作折線圖:

 

生豬價格的話選第一個外三元就行了,

 

使用 matplotlib 輕鬆能夠作出折線圖。

 

from pylab import mpl
import  matplotlib.pyplot as plt
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默認字體
mpl.rcParams['axes.unicode_minus']

plt.figure(figsize=(8,4), dpi=80)
plt.plot(data['time'],data['pigprice'], color="r",linestyle = "-")
plt.xticks(data['time'][2::121], rotation=0)
plt.xlabel("生豬(外三元) 元/公斤")

 

 

感受還差點東西,能夠標註一下最新一天的價格

 

另外既然已經獲取了玉米和豆粕的價格,就一塊兒作了吧~

 

利用 plt.subplot 能夠繪製多個子圖

 

from pylab import mpl
import  matplotlib.pyplot as plt
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默認字體
mpl.rcParams['axes.unicode_minus']

plt.figure(figsize=(8,10), dpi=80)
plt.figure(1)
ax1 = plt.subplot(311)
plt.plot(data['time'],data['pigprice'], color="r",linestyle = "-")
plt.xticks([])
plt.annotate(data['pigprice'][365], xy=(data['time'][365], 40), xytext=(data['time'][270], 35), arrowprops=dict(facecolor='black', shrink=0.1, width=0.5))
plt.xlabel("生豬(外三元) 元/公斤")

ax2 = plt.subplot(312)
plt.plot(data['time'],data['maizeprice'],color="y",linestyle = "-")
plt.xticks([])
plt.xlabel("玉米(15%水分) 元/噸")

ax3 = plt.subplot(313)
plt.plot(data['time'],data['bean'],color="g",linestyle = "-")
plt.xlabel("豆粕(43%蛋白) 元/噸")
plt.xticks(data['time'][2::121], rotation=0)

 

 

完工,

 

發給阿東。

 

卻獲得這樣的回覆

 

 

原來在他內心是這麼定義朋友的啊。

 

能夠,

 

這很東哥,

 

這很兄弟。

一鍵爬取最新豬價&可視化的代碼已上傳github:

https://github.com/zpw1995/aotodata/tree/master/interest/pig

相關文章
相關標籤/搜索