需要读取数据模板文件,格式如下,首先是后续要显示的名称,然后是成本价、净值,使用【/】分隔
建信50 | 0.8502/0.8499/0.8496 | 0.8263/0.8239/0.8253 | 0.0260/0.0246 富国中正红利 | 1.1273/1.1270/1.1263 | 1.1030/1.1040/1.0960 | 0.0230/0.0310 景顺中正500 | 0.9798/0.9792/0.9780 | 0.9271/0.9250/0.9149 | 0.0542/0.0643 前海开源人工智能 | 1.0665/1.0653/1.0625 |0.9930/0.9890/0.9870 | 0.0763 易方达创业板 | 1.6463/1.6452/1.6434 | 1.5368/1.5377/1.5233 | 0.1075 南方价值混合C|1.0843/1.0837/1.0819 | 1.0520/1.0520/1.0490 | 0.0317
# -*- coding:utf-8 -*- import numpy as np import matplotlib.pyplot as plt import matplotlib font = { 'family' : 'SimHei' } matplotlib.rc('font', **font) ["006539","NFYXJZHHC","南方优选价值混合C","混合型","NANFANGYOUXUANJIAZHIHUNHEC"] ["100032","FGZZHLZSZQ","富国中证红利指数增强","股票指数","FUGUOZHONGZHENGHONGLIZHISHUZENGQIANG"] ["003318","JSZZ500HYZXDBD","景顺中证500行业中性低波动","股票指数","JINGSHUNZHONGZHENG500HANGYEZHONGXINGDIBODONG"] ["001986","QHKYRGZNZTHH","前海开源人工智能主题混合","混合型","QIANHAIKAIYUANRENGONGZHINENGZHUTIHUNHE"] ["004744","YFDCYBETFLJC","易方达创业板ETF联接C","联接基金","YIFANGDACHUANGYEBANETFLIANJIEC"] ["165312","JXYS50","建信央视50","股票指数","JIANXINYANGSHI50"] i=1 index=321 subIndex=321 def calc(value): global index day="6-1,6-2,6-3".split(',') #v="建信50 | 0.8502/0.8499/0.8496 | 0.8263/0.8239/0.8253 | 0.0260/0.0246".split('|') v=value.split('|') name=v[0] myValue=[] for m in v[1].split('/'): myValue.append(float(m)) curValue=[] for m in v[2].split('/'): curValue.append(float(m)) z=[] #整理差值数据 for i in range(len(day)): z.append((myValue[i]-curValue[i])*10) plt.figure(1) plt.subplot(index) plt.plot(day, myValue, color = 'blue', linewidth = 2.0, linestyle = '-',label="持仓成本价") plt.plot(day, curValue, color = 'red', linewidth = 2.0, linestyle = '--',label="当前净值") plt.legend() #显示上面的label plt.title(name) #添加标题 plt.figure(2) plt.subplot(index) plt.plot(day, z, color = 'red', linewidth = 2.0, linestyle = '-',label="差值") plt.legend() #显示上面的label plt.title(name+"差值") #添加标题 index=index+1 return z def sub(name,value): plt.figure(1) plt.subplot(index) index=index+1 plt.plot(day, value, color = 'red', linewidth = 2.0, linestyle = '-',label="差值") plt.legend() #显示上面的label plt.title(name+"差值") #添加标题 with open("./a.txt",'r', encoding='UTF-8') as file: for line in file: z=calc(line) name=(line.split('|'))[0] #print(name) plt.show()