我用Python幫朋友做了張豬肉數(shù)據(jù)分析圖,結(jié)果...
卻發(fā)現(xiàn)他是這么拿我當兄弟的
事情的經(jīng)過是這樣的:
我開開心心的去一家燒餅店吃飯

抬頭一看,二師兄又漲價了
嘆了口氣,再這么下去真的要吃不起夾肉的燒餅了
點了兩個燒餅一碗餛飩
快吃完的時候,收到了朋友阿東的微信
阿東是我初中同學,好些日子沒聯(lián)系了

眼瞅著他快聊到區(qū)塊鏈了,雖然這事不靠譜,但還是答應了阿東幫他做圖。
我趕緊吃完最后一口,回公司,決定不午睡了。
開工!
阿東想要這樣的圖:

折線圖嘛,先獲取數(shù)據(jù)吧
正好圖片中顯示了數(shù)據(jù)來源:“中國養(yǎng)豬網(wǎng)”
打開官網(wǎng),找到并跳轉(zhuǎn)到豬價網(wǎng)址 http://zhujia.zhuwang.cc/

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

新標簽頁打開,在線解析Json數(shù)據(jù),不了解這塊知識的朋友可以點擊?在python里玩轉(zhuǎn)Json數(shù)據(jù)

部分爬蟲代碼(完整代碼見文末下載地址):
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')運行結(jié)果:

成功獲取最近一年的各種價格√
下面開始給阿東做折線圖:
生豬價格的話選第一個外三元就好了,
使用 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("生豬(外三元)?元/公斤")
感覺還差點東西,可以標注一下最新一天的價格
另外既然已經(jīng)獲取了玉米和豆粕的價格,就一起做了吧~
利用 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)
完工,
發(fā)給阿東。
卻得到這樣的回復


原來在他心里是這么定義朋友的啊。
可以,
這很東哥,
這很兄弟。
一鍵爬取最新豬價&可視化的代碼已上傳github:
https://github.com/zpw1995/aotodata/tree/master/interest/pig
覺得不錯,點個在看唄
