| 
                        副标题[/!--empirenews.page--]
                         事情的经过是这样的: 
我开开心心的去一家烧饼店吃饭 
  
抬头一看,二师兄又涨价了 
叹了口气,再这么下去真的要吃不起夹肉的烧饼了 
点了两个烧饼一碗馄饨 
快吃完的时候,收到了朋友阿东的微信 
阿东是我初中同学,好些日子没联系了 
  
眼瞅着他快聊到区块链了,虽然这事不靠谱,但还是答应了阿东帮他做图。 
我赶紧吃完最后一口,回公司,决定不午睡了。 
开工! 
阿东想要这样的图: 
  
折线图嘛,先获取数据吧 
正好图片中显示了数据来源:“中国养猪网” 
打开官网,找到并跳转到猪价网址 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) 
 
  
                                                (编辑:我爱故事小小网_铜陵站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |