我用Python帮朋友做了张猪肉数据分析图,结果猪肉是真吃不起了!

事情的经过是这样的:

我开开心心的去一家烧饼店吃饭

抬头一看,二师兄又涨价了

叹了口气,再这么下去真的要吃不起夹肉的烧饼了

点了两个烧饼一碗馄饨

快吃完的时候,收到了朋友阿东的微信

阿东是我初中同学,好些日子没联系了

眼瞅着他快聊到区块链了,虽然这事不靠谱,但还是答应了阿东帮他做图。

我赶紧吃完最后一口,回公司,决定不午睡了。

开工!

阿东想要这样的图:

折线图嘛,先获取数据吧

正好图片中显示了数据来源:“中国养猪网”

打开官网,找到并跳转到猪价网址 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) 

完工,

发给阿东。

却得到这样的回复

原来在他心里是这么定义朋友的啊。

可以,

这很东哥,

这很兄弟。

https://www.jianshu.com/p/be4c446b3fc5

Python量化投资网携手4326手游为资深游戏玩家推荐:《明日方舟干员测评:行走的D32钢——星极测评

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论