我用python帮朋友做了张图,结果
16lz
2021-01-22
我用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 mplimport matplotlib.pyplot as pltmpl.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 mplimport matplotlib.pyplot as pltmpl.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
更多相关文章
- 如何用python进行数据分析——00环境配置
- Python爬取近十年TIOBE编程语言热度数据并可视化可视化
- 手把手教你用Selenium爬取拉勾网数据!
- 更高效的利用Jupyter+pandas进行数据分析,6种常用数据格式效率对
- pivottablejs|在Jupyter中尽情使用数据透视表!
- 『爬虫四步走』手把手教你使用Python抓取并存储网页数据!
- 分析数万条旅游评论数据后,告诉你国庆“坑爹”景点背后的秘密....
- 天猫双11数据过于完美?我们用python来看看
- 38年后的今天,用数据回顾什么是女排精神?