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

事情的经过是这样的:

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

 

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

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

点了两个烧饼一碗馄饨

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

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

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

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

开工!

阿东想要这样的图:

折线图嘛,先获取数据吧

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

打开官网,找到并跳转到猪价网址 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

我用Python帮朋友做了张猪肉数据分析图,结果。。。的更多相关文章

  1. 用python帮朋友刷帖

    0x0前言: 答应了一个朋友帮他刷贴,自己用python写了一个脚本刷. 虽然行为不好..但是缺钱用... 0x01准备: splinter模块: chrome浏览器驱动 0x02开始: 1.进入百度 ...

  2. 让大蛇(Python)帮你找工作

    前段时间用Python实现了一个网络爬虫(让大蛇(Python)帮你找工作),效率总体还可以,但是缺点就是每次都需要手动的去触发,于是打算对该爬虫加上Timer,经过网上一番搜索以及API的查询,发现 ...

  3. 如和用python给女朋友做个专属她的软件

    如和用python给女朋友做个专属她的软件 在学习python的路上如果觉得枯燥就可以想我一样做一些有趣的事情就不会无聊了 python是一门及其有趣的语言. 人们都喜欢记住一些重要的日子,比如说跟女 ...

  4. (旧)子数涵数·C语言——让C帮你做计算

    之前,我们学过了我们的第一个C程序--hello World.现在开始进一步学习,想一想如何让C帮你做计算. 我们先来看代码(我没有新建,还是用之前的hello world.cpp): 好,因为之前在 ...

  5. javaCV开发详解之技术杂烩:javaCV能帮我们做什么?能实现什么功能?ffmpeg和openCV能实现功能,javaCV如何做到更快、更简单的实现相应的功能?等等一堆实用话题

    前言: 该篇文章旨在帮助刚接触javaCV的盆友系统的认识音视频.javaCV.图像处理相关的体系知识和一些实用的知识. 序: javaCV早期因为内置了openCV库,所以常用来做图像识别应用,现在 ...

  6. spring是什么,Spring能帮我们做什么

    1. spring是什么? Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发.应用程序是由一组相 ...

  7. [TPYBoard - Micropython之会python就能做硬件 1] 运行第一个脚本——点亮LED

    转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604 会python就能做硬件! 一.TPYBoard V102开发板 TPYBoard V102 ...

  8. [TPYBoard - Micropython之会python就能做硬件 开篇]会python就能做硬件!

    转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604 会python就能做硬件! 在写这套教程之前,首先感觉山东萝卜电子科技有限公司(turnip ...

  9. python使用tkinter做界面之颜色

    python使用tkinter做界面之颜色       from tkinter import *colors = '''#FFB6C1 LightPink 浅粉红#FFC0CB Pink 粉红#DC ...

随机推荐

  1. 删除Autorun.inf的方法

    你的电脑的每个分区根目录都有一个autorun.inf的文件夹,查看属性是只读+隐藏,且无法删除.无法取得权限!点进去,却显示的是控制面板的内容? 其实这个不是病毒,而是用来防病毒,一些系统封装工具本 ...

  2. Java基础知识笔记第八章:常用的实体类

    String类 String类位于lang包下 java会默认导入lang包下的类,所以可以直接使用,注意String是final类所以不能有子类 构造String对象: 常量对象:String常量也 ...

  3. 关于Android Studio中点9图的编译错误问题

    Android中的点9图想必大家都非常熟悉了,能够指定背景图片的缩放区域和文本内容的显示区域,常见如QQ聊天界面的背景气泡这种文本内容不固定并需要适配的应用场景. 这里也给大家准备了一张图,详细介绍了 ...

  4. java中如何修改事务的隔离级别

    事务的特性: 原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生. (多条语句要么都成功,要么都失败.) 一致性(Consistency)事务前后 ...

  5. 执行SQL时出现: ORDER BY clause is not in GROUP BY clause and contains nonaggregated c

    注意: 采用navicat新建数据库时,需要将编码方式设置为,字符集:utf8 -- UTF-8 Unicode ,排序规则:utf8_general_ci 在运行sql语句时,出现以下问题: [Er ...

  6. Jmeter JDBC配置

    前提条件,驱动包mysql-connector-java-5.1.38-bin.jar要放到本机Java路径:C:\Program Files\Java\jdk1.8.0_73\jre\lib\ext ...

  7. 洛谷 P6046 [CTSC2000]快乐的蜜月

    先讲解一下如何处理这道题的毒瘤输入.\(m\) 和 \(d\) 之间的"/"和" TO "都可以用 getchar() 强行吃掉,日期的转换可以用公式 \(s_ ...

  8. 如何更改linux(centos)下的Apache http端口号

    # vi  /etc/httpd/conf/httpd.conf  文件 修改两个地方     #Listen 12.34.56.78:80     Listen 80     #把80改为你设置的端 ...

  9. 回顾PHP:第一章:PHP基础语法(2)

    十.PHP常量和变量——用常量限制用户跳过某些文件(重要) 十.1常量在代码中定义.书写方式: define(常量名,常量值) 注:1.常量值只能为标量 2.常量名可以小写,但是通常大写 3.常量名可 ...

  10. java并发初探ConcurrentHashMap

    java并发初探ConcurrentHashMap Doug Lea在java并发上创造了不可磨灭的功劳,ConcurrentHashMap体现这位大师的非凡能力. 1.8中ConcurrentHas ...