在一的基础上,想着把所有的折线图放在一个图中,然后图的结果如图所示:
不是略丑,是很丑~
依然的单进程,只是将图标结果放在了一张图里
代码如下:
#-*-coding:utf-8 -*- import urllib import re import json import urllib2 from lxml import etree import requests import time from Queue import Queue import matplotlib.pyplot as plt URL = 'http://quote.fx678.com/exchange/WH' nation_que = Queue() nation = Queue() high = Queue() start_time = Queue() Chart = [] def download(url, headers, num_try=2): while num_try >0: num_try -= 1 try: content = requests.get(url, headers=headers) return content.text except urllib2.URLError as e: print 'Download error', e.reason return None def sub_sort(array,array1,low,high): key = array[low] key1 = array1[low] while low < high: while low < high and array[high] >= key: high -= 1 while low < high and array[high] < key: array[low] = array[high] array1[low] = array1[high] low += 1 array[high] = array[low] array1[high] = array1[low] array[low] = key array1[low] = key1 return low def quick_sort(array,array1,low,high): if low < high: key_index = sub_sort(array,array1,low,high) quick_sort(array,array1,low,key_index) quick_sort(array,array1,key_index+1,high) def get_type_url(): headers = { 'User_agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36', 'Referer': 'http://quote.fx678.com/exchange/WH', 'Cookie': 'io=-voMclEjiizK9nWKALqB; UM_distinctid=15f5938ddc72db-089cf9ba58d9e5-31657c00-fa000-15f5938ddc8b24; Hm_lvt_d25bd1db5bca2537d34deae7edca67d3=1509030420; Hm_lpvt_d25bd1db5bca2537d34deae7edca67d3=1509031023', 'Accept-Language': 'zh-CN,zh;q=0.8', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*' } content = download(URL,headers) html = etree.HTML(content) result = html.xpath('//a[@class="mar_name"]/@href') for each in result: print each st = each.split('/') nation_que.put(st[len(st)-1]) get_precent() def get_precent(): while not nation_que.empty(): ss = nation_que.get(False) print ss url = 'http://api.q.fx678.com/history.php?symbol=' + ss +'&limit=288&resolution=5&codeType=8100&st=0.8274405615006541' print url headers = {'Accept':'application/json, text/javascript, */*; q=0.01', 'Accept-Encoding':'gzip, deflate', 'Accept-Language':'zh-CN,zh;q=0.8', 'Connection':'keep-alive', 'Host':'api.q.fx678.com', 'Origin':'http://quote.fx678.com', 'Referer':'http://quote.fx678.com/symbol/USD', 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36' } num_try = 2 while num_try >0: num_try -= 1 try: content = requests.get(url, headers=headers) html = json.loads(content.text) st = html['h'] T_time = html['t'] if len(st) > 0 and len(T_time) > 0: draw_pict(T_time,st) break except urllib2.URLError as e: print 'Download error', e.reason nation_que.task_done() List = [] def draw_pict(T_time1,high_rate): print T_time1 print high_rate num = 0 High = T_time1 Time = high_rate High_Rate = [] num = 0 T_time = [] for each,high1 in zip(T_time1,high_rate): st = time.localtime(float(each)) if st.tm_min == 0: T_time.append(st.tm_hour) High_Rate.append(high1) else: pass if len(T_time) == len(High_Rate): quick_sort(T_time,High_Rate,0,len(High_Rate)-1) List.append(High_Rate) def draw_picture(): colu = len(List) num = 1 for each in List: plt.subplot(colu/2 + 1,2,num) num+=1 list = each T_time = [] for i in range(len(list)): T_time.append(i) print len(list) print len(T_time) plt.plot(T_time, list, marker='*') plt.show() plt.title('Share Message') if __name__ == '__main__': get_type_url() draw_picture()
折线图结果如图
ps:1的是将图的结果进行单个显示,每支股票是单独的一张图