|
|
51CTO旗下网站
|
|
移动端

我用Python帮朋友做了张猪肉数据分析图,结果。。。

事情的经过是这样的:我开开心心的去一家烧饼店吃饭,抬头一看,二师兄又涨价了,叹了口气,再这么下去真的要吃不起夹肉的烧饼了,点了两个烧饼一碗馄饨。

作者:朱小五来源:凹凸玩数据|2019-11-04 15:22

事情的经过是这样的:

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

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

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

点了两个烧饼一碗馄饨

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

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

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

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

开工!

阿东想要这样的图:

折线图嘛,先获取数据吧

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

打开官网,找到并跳转到猪价网址 http://zhujia.zhuwang.cc/

F12,Network查看异步请求XHR,成功找到价格接口。

新标签页打开,在线解析Json数据,不了解这块知识的朋友可以点击 在python里玩转Json数据

部分爬虫代码(完整代码见文末下载地址):

  1. def get_comments(url): 
  2.     doc = get_json(url) 
  3.     dic = {} 
  4.     dic['pigprice'] = doc['pigprice'
  5.     dic['pig_in'] = doc['pig_in'
  6.     dic['pig_local'] = doc['pig_local'
  7.     dic['maizeprice'] = doc['maizeprice'
  8.     dic['bean'] = doc['bean'
  9.     a = '-'.join(doc['time'][3]) 
  10.     b = time.strftime('%Y-%m-%d',time.localtime(time.time())) 
  11.     print(dateRange(a,b)) 
  12.     dic['time'] = dateRange(a,b) 
  13.     return pd.DataFrame(dic) 
  14.  
  15. data =get_comments('http://zhujia.zhuwang.cc/index/api/chartData?areaId=-1&aa=1571997555296'

运行结果:

成功获取最近一年的各种价格√

下面开始给阿东做折线图:

生猪价格的话选第一个外三元就好了,

使用 matplotlib 轻松可以做出折线图。

  1. from pylab import mpl 
  2. import  matplotlib.pyplot as plt 
  3. mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体 
  4. mpl.rcParams['axes.unicode_minus'
  5.  
  6. plt.figure(figsize=(8,4), dpi=80) 
  7. plt.plot(data['time'],data['pigprice'], color="r",linestyle = "-"
  8. plt.xticks(data['time'][2::121], rotation=0) 
  9. plt.xlabel("生猪(外三元) 元/公斤"

感觉还差点东西,可以标注一下最新一天的价格

另外既然已经获取了玉米和豆粕的价格,就一起做了吧~

利用 plt.subplot 可以绘制多个子图

  1. from pylab import mpl 
  2. import  matplotlib.pyplot as plt 
  3. mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体 
  4. mpl.rcParams['axes.unicode_minus'
  5.  
  6. plt.figure(figsize=(8,10), dpi=80) 
  7. plt.figure(1) 
  8. ax1 = plt.subplot(311) 
  9. plt.plot(data['time'],data['pigprice'], color="r",linestyle = "-"
  10. plt.xticks([]) 
  11. 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)) 
  12. plt.xlabel("生猪(外三元) 元/公斤"
  13.  
  14. ax2 = plt.subplot(312) 
  15. plt.plot(data['time'],data['maizeprice'],color="y",linestyle = "-"
  16. plt.xticks([]) 
  17. plt.xlabel("玉米(15%水分) 元/吨"
  18.  
  19. ax3 = plt.subplot(313) 
  20. plt.plot(data['time'],data['bean'],color="g",linestyle = "-"
  21. plt.xlabel("豆粕(43%蛋白) 元/吨"
  22. plt.xticks(data['time'][2::121], rotation=0) 

完工,

发给阿东。

却得到这样的回复


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

可以,

这很东哥,

这很兄弟。

一键爬取最新猪价&可视化的代码已上传github:

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

【编辑推荐】

  1. Python 还你一块纯洁无暇的移动硬盘
  2. 我花10个小时,写出了小白也能看懂的阿里数据中台分析
  3. 四种高性能数据类型,Python collections助你优化代码、简洁任务
  4. 学Python的要注意,为什么只会Python可能很难找到工作
  5. Python爬虫:爬一下十月份的就业情况
【责任编辑:华轩 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

骨干网与数据中心建设案例

骨干网与数据中心建设案例

高级网工必会
共20章 | 捷哥CCIE

313人订阅学习

中间件安全防护攻略

中间件安全防护攻略

4类安全防护
共4章 | hack_man

132人订阅学习

CentOS 8 全新学习术

CentOS 8 全新学习术

CentOS 8 正式发布
共16章 | UbuntuServer

278人订阅学习

读 书 +更多

C#高级编程(第4版)

C#经典名著!2006年最受读者喜爱的十大技术开发类图书!也是Wrox红皮书中最畅销的品种之一,从第一版开始就名满天下;其第3版被中华读书报...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微