第四步:用matplotlib画柱状图
1.首先设置正常显示中文标签,SimHei为中文字体,用plt.figure建1个15x8的画布,设置标题内容、字体颜色、字体粗细及大小
plt.rcParams['font.sans-serif'] = ['SimHei'] # windows 用来正常显示中文标签# plt.rcParams["font.family"] = 'Arial Unicode MS' # mac 用来正常显示中文标签plt.figure(figsize=(15, 10), dpi=80)plt.title('{0}基金模拟定投收益图'.format(fundCode), color='blue', fontweight=800, size=50)profit_list = [round((i-100*j)/(100*j), 4) for i, j in zip(total_money, count)] # 到期后总收益率
效果如下:
2.然后用plt.bar画柱状图大小,第一个代表该日增长的概率,第二个为该日累计增长的收益,plt.bar内的label参数为图签,但是要用plt.legend放止图签与图像重合显示不出来,调整y轴坐标范围以便于查看,最后设置坐标轴粗细。
name_list = ['周一', '周二', '周三', '周四', '周五']x = range(len(name_list))minytick=int(min(total_money))-1000maxytick=int(max(total_money))+1000plt.bar(x, [i for i in total_money], label='该日定投最终收益', width=0.4, color='y')# 参数 m、m2、r 用来调整高度比例m = sum(total_money) / 5m2 = min(profit_list)r = 50000plt.bar([i+0.4 for i in x], [(i-m2)*r + m for i in profit_list], label='该日定投收益率', width=0.4, color='r')plt.legend(loc="upper left") # 防止label和图像重合显示不出来plt.xticks(x, name_list, size=20) # x坐标plt.ylim(minytick, maxytick)plt.yticks(range(minytick, maxytick, 200), size=20) # y坐标ax = plt.gca();#获得坐标轴的句柄ax.spines['left'].set_linewidth(3) ; ####设置左边坐标轴的粗细ax.spines['bottom'].set_linewidth(3) ; ###设置底部坐标轴的粗细