# -*- coding: utf-8 -*- from matplotlib import pyplot as plt import matplotlib import settings import re plt.rcParams['font.family'] = settings.FONT class view: def __init__(self, itemList): self.id = itemList[0] self.string = itemList[1] def getFont(): # 列出可用的字体 font = sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist]) for i in font: print(i) def main(self): def str2data(string) -> list: reg = r"[+-]?([0-9]*\.?[0-9]+|[0-9]+\.?[0-9]*)" pattern = re.compile(reg) return pattern.findall(string) def show(itemList): x = [] y = [] while itemList: temp = itemList.pop() date = temp[0] + "月" + temp[1] + "日" price = "¥" + temp[2] + "元" x.append(date) y.append(price) date = temp[3] + "月" + temp[4] + "日" price = "¥" + temp[5] + "元" x.append(date) y.append(price) plt.title("价格趋势") plt.bar(x, y, color = 'g', align = 'center') plt.xticks(size = 10.0, rotation = 45) plt.xlabel("日期") plt.ylabel("价格") plt.plot(x, y, color = 'red', linewidth = 5.0, linestyle = '--') plt.show() itemList = [] for astr in self.string.split(';'): strList = str2data(astr) try: print(astr) itemList.append(strList) except BaseException: break show(itemList) def getData(): pass