python用matplotlib画图例子(2)

本文介绍了一段使用Python绘制2017年沪深300指数走势图的方法,通过matplotlib库实现,并标注了全年最低点及国庆节等关键节点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:

用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()

结果

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值