您的位置:首页 > 编程语言 > Python开发

python用matplotlib画图例子(2)

2017-10-14 12:31 721 查看

背景:

用python的matplotlib的api画沪深300在2017年的走势图,并且标识出全年最低价及国庆节。(数据来源:天软科技)

代码

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from datetime import datetime
"""
数据格式(2017沪深300.CSV):
date    HS300
2017/1/3    3342.2272
2017/1/4    3368.3117
2017/1/5    3367.7892
………………
"""
filepath = 'C:\\Users\\tinysoft\\Desktop\\2017沪深300.CSV'
data = pd.read_csv(filepath,index_col=0,parse_dates = True)

hs300 = data['HS300']

fig = plt.figure()
ax = fig.add_subplot(111)

hs300.plot(ax=ax,style='r')

"""
设置标注:
日期
备注文本
颜色
"""
day_label = [
(datetime(2017,10,1),'National Day','r'),#国庆节
(hs300.idxmin(),"min",'g') #2017年最低
]

for day,text,color in day_label:
label = "{0}\n{1}\n{2}".format(day.date(),hs300.asof(day),text)
ax.annotate(label,
xy = (day,hs300.asof(day)+10),#数据位置
xytext = (day,hs300.asof(day)+150),#字体位置
arrowprops = dict(facecolor=color),#箭头颜色
horizontalalignment='left',#水平对齐方式
verticalalignment='top')#垂直对齐方式

ax.set_xlim([datetime(2017,1,1),datetime(2017,12,31)])

ax.set_ylabel('$Close$')
ax.set_xlabel('$SH000300$')
ax.set_title('$In\ 2017, the\ SH000300\ charts$')

plt.show()


结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python matplotlib