<金融绘图>学习笔记

快速绘制K线图

Pandas是金融领域非常好用且高效的数据分析与处理模块。
import plotly as py
import  plotly.graph_objs as go
pyplt=py.offline.plot
import pandas as pd
df=pd.read_csv(r'C:/Users/daasda/Desktop/py语言/《基于plotly的动态可视化绘图》数据/Chapter05/dat/appl.csv',
               index_col=['date'],parse_dates=['date'])
trace=go.Ohlc(
    x=df.index,
    open=df.open,
    high=df.high,
    low=df.low,
    close=df.close
)
data=[trace]
pyplt(data,filename=r'OHLC(美国线)图.html')

结果:
在这里插入图片描述

快速绘制蜡烛图

import plotly as py
import  plotly.graph_objs as go
pyplt=py.offline.plot
import pandas as pd
df=pd.read_csv(r'C:/Users/daasda/Desktop/py语言/《基于plotly的动态可视化绘图》数据/Chapter05/dat/appl.csv',
               index_col=['date'],parse_dates=['date'])
trace=go.Candlestick(
    x=df.index,
    open=df.open,
    high=df.high,
    low=df.low,
    close=df.close
)
data=[trace]
pyplt(data,filename=r'蜡烛图.html')

结果:
在这里插入图片描述
以上两种函数虽然效果不错,但是却有一个致命的缺陷,那就是绘图结果中包含了所有的日期信息,包括非交易日。

K线图的优化

过滤非交易时间

这属于对X轴进行操作,需要在布局管理中进行。

import plotly as py
import  plotly.graph_objs as go
pyplt=py.offline.plot
import pandas as pd
df=pd.read_csv(r'C:/Users/daasda/Desktop/py语言/《基于plotly的动态可视化绘图》数据/Chapter05/dat/appl.csv',
               index_col=['date'],parse_dates=['date'])
trace=go.Ohlc(
    x=df.index,
    open=df.open,
    high=df.high,
    low=df.low,
    close=df.close
)
data=[trace]
layout=go.Layout(xaxis=go.XAxis(autorange=True,
                                mirror='all',
                                gridcolor='rgb(180,180,180)',
                                showline=True,#画出x轴
                                showgrid=True,
                                tickangle=-60,
                                 categoryorder="category ascending",
                                  type='category'),#把x轴的元素看成是分类的元素,并对其进行升序排序
                                 yaxis=go.YAxis(
                                     autorange=True,
                                     gridcolor='rgb(180,180,180)'
                                 ))
                                 fig=go.Figure(data=data,layout=layout)
pyplt(fig,filename=r'K线图优化(过滤非交易时间).html')

注:最重要的代码categoryorder="category ascending", type='category'意思是把x轴的元素看成分类的元素,并对其进行升序排序。既然元素的属性为类别,不是时间,那么就不存在过滤非交易时间的问题了。
结果:
在这里插入图片描述

设置颜色、形状、注释


import plotly as py
import plotly.graph_objs as go
import pandas as pd

fig = go.Figure()

# -------------pre def
pyplt = py.offline.plot

df=pd.read_csv(r'C:/Users/daasda/Desktop/py语言/《基于plotly的动态可视化绘图》数据/Chapter05/dat/appl.csv',
               index_col=['date'],parse_dates=['date'])

trace = go.Candlestick(x=df.index,
                open=df.open,
                high=df.high,
                low=df.low,
                close=df.close,
                increasing=dict(line=dict(color='#FF0000')),
                decreasing=dict(line=dict(color='#0C05F9'))
                )
data = [trace]
layout=go.Layout({
    'xaxis': {
        'showline': True,  # 画出 X 轴那条线
        'tickangle': -60,
        'categoryorder': "category ascending",
        'type': 'category'},
    'title': '苹果公司K线图',
    'yaxis': {'title': '股票价格'},
    'shapes': [{
        'x0': '2016-08-22', 'x1': '2016-10-05',
        'y0': 0, 'y1': 1, 'xref': 'x', 'yref': 'paper',
        'line': {'color': 'rgb(30,30,30)', 'width': 2}
    }],
    'annotations': [{
        'x': '2016-09-12', 'y': 0.05, 'xref': 'x', 'yref': 'paper',
        'showarrow': True, 'xanchor': 'left',
        'text': '区间最低价'
    }]
})
fig=go.Figure(data=data,layout=layout)
pyplt(fig, filename=r'设置了颜色等的蜡烛图.html')

结果:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值