副问题[/!--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)
(编辑:河北网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|