import requests
import numpy as np
import pandas as pd
import time
import matplotlib.pylab as plt
from matplotlib.pylab import style
class ProductData:
api_pie="*****"
api_bar="*****"
api_line ="*****/"
api_product="******"
def __init__(self, accessToken, apiUrl):
self.url = apiUrl
self.accessToken = accessToken
self.req = requests
def getSomeData(self, param):
resp = self.req.get(url=self.url, params=param)
print(resp.json())
df = pd.DataFrame(resp.json()).fillna("null")
ls = df.values.tolist()
print(df.columns.tolist())
print(ls)
def all(self, api,param=None):
if param is None:
param = {}
api = self.url + api + self.accessToken
print(api)
resp = self.req.post(url=api, json=param)
print(resp.status_code)
if resp.status_code != 200:
return
return resp.json()
def getProductData(self, param=None):
return self.all(api=self.api_product, param=param)
def getDataChartLine(self, param=None):
return self.all(api=self.api_line,param=param)
def getDataChartBar(self, param=None):
return self.all(api=self.api_bar,param=param)
def getDataChartPie(self, param=None):
return self.all(api=self.api_pie,param=param)
def extractData():
x = []
y= []
for i in range(len(data2)):
groupDate = data2[i]['group_by']
volume = data2[i]['volume']
x.append(groupDate)
y.append(float(volume))
return x,y
class Graph_show:
def __init__(self):
self.x, self.y = extractData()
style.use('ggplot')
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
def line_graph(self):
plt.xlabel('时间', fontsize=14)
plt.ylabel('体积/吨', fontsize=14)
plt.title('数据分析图', fontsize=24)
plt.plot(self.x,self. y, color='red', linewidth=3)
plt.figure(figsize=(10,10), dpi=100)
plt.show()
def column_graph(self):
return
if __name__ == "__main__":
url = '******'
req = ProductData(accessToken="*********", apiUrl=url)
start=time.time()
result1 = req.getProductData()
param = {"codes": ["20170011"], "beginTime": "2017-11-11", "endTime": "2020-5-27",}
result2 = req.getDataChartBar(param=param)
print(result2)
param2 = {"codes": ["20170011"], "beginTime": "2018-11-11", "endTime": "2018-12-27"}
result3 = req.getDataChartLine(param=param2)
param3 = {"codes": ["20170011"], "beginTime": "2017-11-11", "endTime": "2020-11-09"}
result4 = req.getDataChartPie(param=param3)
end=time.time()
print(time.strftime("%Y-%M-%D %H:%M:%S"),end-start)
result2 = dict(result2)
data2= result2['data']['20170011']['data']
dd=Graph_show()
dd.line_graph()