我用Python帮朋友做了张猪肉数据分析图,结果。。。
事情的经过是这样的:我开开心心的去一家烧饼店吃饭,抬头一看,二师兄又涨价了,叹了口气,再这么下去真的要吃不起夹肉的烧饼了,点了两个烧饼一碗馄饨。
- 作者:朱小五来源:凹凸玩数据|2019-11-04 15:22
事情的经过是这样的:
我开开心心的去一家烧饼店吃饭
抬头一看,二师兄又涨价了
叹了口气,再这么下去真的要吃不起夹肉的烧饼了
点了两个烧饼一碗馄饨
快吃完的时候,收到了朋友阿东的微信
阿东是我初中同学,好些日子没联系了
眼瞅着他快聊到区块链了,虽然这事不靠谱,但还是答应了阿东帮他做图。
我赶紧吃完最后一口,回公司,决定不午睡了。
开工!
阿东想要这样的图:
折线图嘛,先获取数据吧
正好图片中显示了数据来源:“中国养猪网”
打开官网,找到并跳转到猪价网址 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
【编辑推荐】
【责任编辑:华轩 TEL:(010)68476606】
点赞 0
- 大家都在看
- 猜你喜欢
编辑推荐
- 24H热文
- 一周话题
- 本月获赞
- 2019年流行的8种编程语言和框架刚来的大神彻底干掉了代码中的if else...使用Kotlin做开发一个月后的感想面试官问你什么是消息队列?把这篇甩给他!终于有人把Elasticsearch原理讲透了!花了一个星期,我终于把RPC框架整明白了!多次尝试学习,终于搞懂了微服务架构Cookies和Session的区别和理解
- 终于有人把Elasticsearch原理讲透了!面试官问你什么是消息队列?把这篇甩给他!花了一个星期,我终于把RPC框架整明白了!使用Kotlin做开发一个月后的感想收藏 | 第一次有人把“分布式事务”讲的这么简单明了支付宝架构到底有多牛逼!没看完我就跪了!刚来的大神彻底干掉了代码中的if else...多次尝试学习,终于搞懂了微服务架构
- 终于有人把Elasticsearch原理讲透了!使用Kotlin做开发一个月后的感想面试官问你什么是消息队列?把这篇甩给他!花了一个星期,我终于把RPC框架整明白了!收藏 | 第一次有人把“分布式事务”讲的这么简单明了Java对象为啥要实现Serializable接口?拜托!面试不要再问我Spring Cloud底层原理五大自动化测试的Python框架
订阅专栏+更多
-
骨干网与数据中心建设案例
高级网工必会共20章 | 捷哥CCIE313人订阅学习
-
中间件安全防护攻略
4类安全防护共4章 | hack_man132人订阅学习
-
CentOS 8 全新学习术
CentOS 8 正式发布共16章 | UbuntuServer278人订阅学习
视频课程+更多
-
2019年软考系统集成项目管理工程师-考前冲刺
讲师:小任老师96596人学习过
-
【徐葳】Flink进阶及实战(下)
讲师:徐葳111620人学习过
-
小白轻松学Spring Cloud
讲师:齐毅80849人学习过
- 精选博文
- 论坛热帖
读 书 +更多
C#高级编程(第4版)
C#经典名著!2006年最受读者喜爱的十大技术开发类图书!也是Wrox红皮书中最畅销的品种之一,从第一版开始就名满天下;其第3版被中华读书报...
-
订阅51CTO邮刊
点击这里查看样刊

51CTO服务号

51CTO官微