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

恋习Python

共 2224字,需浏览 5分钟

 ·

2019-11-07 23:22

却发现他是这么拿我当兄弟的

事情的经过是这样的:


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


33e16f3d284434dddb76289453daffae.webp


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


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


点了两个烧饼一碗馄饨


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


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


567904ac8045c55f3c90b9f334b04e43.webp


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


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


开工!


阿东想要这样的图:


baf09803f572d810ceb3052cdf2c8c24.webp


折线图嘛,先获取数据吧


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


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


cd2bfde656f319cb21e8db63adb833c9.webp


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


a953e01cec5f5df24f2f5e4b7c3f582d.webp


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


efb0dff3cd950ad1fd561ff7c7a1d6f1.webp


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


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')


运行结果:


67cb38acb6a21de8d0b462c8924a77b7.webp


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


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


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


使用 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("生猪(外三元) 元/公斤")


3d44de939529204acb2a94ac20f9756b.webp


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


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


利用 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)


25f98eaf819792c173d1198b684a1ff9.webp


完工,


发给阿东。


却得到这样的回复


91c17cf3f8f491bd450cd3b66ac7faa5.webp

95166a06dbf96a64d924b2748c47c837.webp


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


可以,


这很东哥,


这很兄弟。


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

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


觉得不错,点个在看呗

浏览 74
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报