用时间序列数据画蜡烛图

数据集:时间序列数据集(2024.8.16收集)-修改date资源-CSDN文库

示例一

import pandas as pd
import mplfinance as mpf

# 读取CSV文件
df = pd.read_csv('999999_dcolhchg.csv')

# 将日期列加上19000000,然后转换为日期格式
df['date'] = pd.to_datetime(df['date'] + 19000000, format='%Y%m%d')

# 设置日期列为索引
df.set_index('date', inplace=True)

# 确保列名与mplfinance的要求一致
df.rename(columns={'open': 'Open', 'high': 'High', 'low': 'Low', 'close': 'Close'}, inplace=True)

# 绘制蜡烛图
mpf.plot(df, type='candle', style='charles', title='Candlestick Chart', ylabel='Price')

代码解释:
1. 导入必要的库:

   import pandas as pd
   import mplfinance as mpf

2. 读取CSV文件:

   df = pd.read_csv('999999_dcolhchg.csv')

3. 日期列加上19000000并转换为日期格式:

   df['date'] = pd.to_datetime(df['date'] + 19000000, format='%Y%m%d')

   这里,我们对日期列加上19000000,然后使用`pd.to_datetime`函数将其转换为日期格式,`format='%Y%m%d'`指定日期格式。
4. 设置日期列为索引:

   df.set_index('date', inplace=True)

5. 重命名列名:

   df.rename(columns={'open': 'Open', 'high': 'High', 'low': 'Low', 'close': 'Close'}, inplace=True)

   确保列名与`mplfinance`要求的一致。
6. 绘制蜡烛图:

   mpf.plot(df, type='candle', style='charles', title='Candlestick Chart', ylabel='Price')

   使用`mplfinance`库绘制蜡烛图。

示例二

import pandas as pd
import mplfinance as mpf
# 读取CSV文件
df = pd.read_csv('999999_dcolhchg.csv')
# 转换日期格式,假设日期在"date"列中
df['date'] = pd.to_datetime(df['date'].apply(lambda x: 19000000 + int(x)), format='%Y%m%d')
# 设置日期列为索引
df.set_index('date', inplace=True)
# 确保列名与mplfinance的要求一致
df.rename(columns={'open': 'Open', 'high': 'High', 'low': 'Low', 'close': 'Close'}, inplace=True)
# 绘制蜡烛图
mpf.plot(df, type='candle', style='charles', title='Candlestick Chart', ylabel='Price')

代码解释
1. 导入库

   import pandas as pd
   import mplfinance as mpf

   - pandas 用于数据处理。
   - mplfinance 用于绘制蜡烛图。
2. 读取CSV文件

   df = pd.read_csv('999999_dcolhchg.csv')

3. 转换日期格式

   df['date'] = pd.to_datetime(df['date'].apply(lambda x: 19000000 + int(x)), format='%Y%m%d')

   - 我们将`date`列的值转换为实际的日期值。
4. 设置日期列为索引

   df.set_index('date', inplace=True)

5. 重命名列名

   df.rename(columns={'open': 'Open', 'high': 'High', 'low': 'Low', 'close': 'Close'}, inplace=True)

   - 将列名重命名以匹配`mplfinance`的要求。
6. 绘制蜡烛图

   mpf.plot(df, type='candle', style='charles', title='Candlestick Chart', ylabel='Price')

   - 使用`mplfinance`绘制蜡烛图。

示例三

import pandas as pd
import mplfinance as mpf

# 读取CSV文件
df = pd.read_csv('999999_dcolhchg.csv')

# 将日期列加上19000000,然后转换为日期格式
df['date'] = pd.to_datetime(df['date'] + 19000000, format='%Y%m%d')

# 设置日期列为索引
df.set_index('date', inplace=True)

# 确保列名与mplfinance的要求一致
df.rename(columns={'open': 'Open', 'high': 'High', 'low': 'Low', 'close': 'Close'}, inplace=True)

# 提取最后100个点的数据
df_last_100 = df.tail(100)

# 保存蜡烛图到文件
mpf.plot(df_last_100, type='candle', style='charles', title='Last 100 Points Candlestick Chart', ylabel='Price', savefig='last_100_candlestick_chart.png')

# 显示蜡烛图
mpf.plot(df_last_100, type='candle', style='charles', title='Last 100 Points Candlestick Chart', ylabel='Price')

在这段代码中,我们做了以下事情:
1. 读取CSV文件。
2. 将日期列加上19000000并转换为日期格式。
3. 设置日期列为索引。
4. 确保列名与 mplfinance 的要求一致。
5. 提取最后100个点的数据。
6. 首先绘制并保存蜡烛图到名为 last_100_candlestick_chart.png 的文件中。
7. 然后单独再次绘制图像以在屏幕上显示。

示例四

import pandas as pd
import plotly.graph_objects as go

# 读取CSV文件
df = pd.read_csv('999999_dcolhchg.csv')

# 将日期列加上19000000,然后转换为日期格式
df['date'] = pd.to_datetime(df['date'] + 19000000, format='%Y%m%d')

# 提取最后100个点的数据
df_last_100 = df.tail(100)

# 创建蜡烛图
fig = go.Figure(data=[go.Candlestick(x=df_last_100['date'],
                                     open=df_last_100['open'],
                                     high=df_last_100['high'],
                                     low=df_last_100['low'],
                                     close=df_last_100['close'])])

# 设置标题和轴标签
fig.update_layout(title='Last 100 Points Candlestick Chart',
                  yaxis_title='Price',
                  xaxis_title='Date')

# 显示蜡烛图
fig.show()

以上代码中,通过 Plotly 创建了一个交互式的蜡烛图,并设置了在鼠标悬停时显示详细信息。

当前显示的列名来自你的 CSV 文件,请确保它们与 Plotly 的参数匹配。如果你的数据框列名不同,请记得更改。例如,如果列名是 'open', 'high', 'low', 'close',不需要重命名。然而,如果它们不同,请确保你提供了相应列名。

使用 Plotly 和 Bokeh 等库可以更容易地实现交互式功能。如果你打算在 Jupyter Notebook 中使用它,确保 Jupyter Notebook 已安装 Plotly 并可以显示 Plotly 图形。 

示例五

import pandas as pd
import plotly.graph_objects as go
import plotly.offline as pyo

# 读取CSV文件
df = pd.read_csv('999999_dcolhchg.csv')

# 将日期列加上19000000,然后转换为日期格式
df['date'] = pd.to_datetime(df['date'] + 19000000, format='%Y%m%d')

# 设置日期列为索引
df.set_index('date', inplace=True)

# 提取最后100个点的数据
df_last_100 = df.tail(100)

# 创建图形对象
fig = go.Figure(data=[go.Candlestick(x=df_last_100.index,
                                     open=df_last_100['open'],
                                     high=df_last_100['high'],
                                     low=df_last_100['low'],
                                     close=df_last_100['close'])])

# 设置图表的标题和标签
fig.update_layout(title='Last 100 Points Candlestick Chart',
                  yaxis_title='Price')

# 在浏览器中显示图表
pyo.plot(fig, filename='last_100_candlestick_chart.html')

此代码执行的步骤如下:
1. 读取CSV文件。
2. 将日期列加上19000000并转换为日期格式。
3. 设置日期列为索引。
4. 提取最后100个点的数据。
5. 使用 plotly.graph_objects 创建蜡烛图。
6. 更新图表的标题和y轴标签。
7. 使用 plotly.offline.plot 函数生成一个临时的HTML文件,并在默认的互联网浏览器中打开该文件。

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

109702008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值