对一段已知行情用python中画出K线图~

1. 已知行情: 2024/09/05 ~ 2025/1/3

          date       open       high        low      close
0   2024-09-05  2785.2635  2796.0186  2777.4710  2788.3141
1   2024-09-06  2791.7645  2804.0932  2765.6394  2765.8066
2   2024-09-09  2754.7237  2756.5560  2726.9667  2736.4876
3   2024-09-10  2737.8810  2750.1181  2718.6273  2744.1921
4   2024-09-11  2732.7314  2732.7314  2710.6208  2721.7952
..         ...        ...        ...        ...        ...
74  2024-12-27  3397.2939  3418.9520  3388.3215  3400.1420
75  2024-12-30  3395.3962  3412.8414  3394.9648  3407.3259
76  2024-12-31  3406.9652  3413.4545  3351.7630  3351.7630
77  2025-01-02  3347.9392  3351.7220  3242.0865  3262.5607
78  2025-01-03  3267.0766  3273.5656  3205.7755  3211.4299

2. 用mplfinance库画出K线图:

step1. 引用库

import matplotlib.pyplot as plt
import mplfinance as mpl

* 注意: mplfinance库是基于matplotlib,因此这个库也要加入。

step 2. 数据处理

data=data.set_index('date')

* 将日期设为index, 方便mplfinance库处理。

step 3. 画出K线图

mpl.plot(data, type='candle', volume=False)
plt.show()

candle指的是K线图的风格,volume=False表示忽略成交量.

step 4.运行结果:

### 如何使用 Python 绘制 K 线图 #### 方法一:基于 Matplotlib 和 Pandas 的简单实现 为了绘制简单的 K 线图,可以采用 `matplotlib.finance` 模块中的函数来完成这一操作。不过需要注意的是,在较新的版本中该模块已经被移至 `mpl_finance` 中。 ```python import pandas as pd import numpy as np import matplotlib.pyplot as plt from mpl_finance import candlestick_ohlc import matplotlib.dates as mdates # 创建示例数据框 df data = {'Date': ['2023-01-%02d' % i for i in range(1, 6)], 'Open': [7.45, 7.48, 7.5, 7.52, 7.5], 'High': [7.49, 7.5, 7.55, 7.55, 7.52], 'Low': [7.43, 7.45, 7.48, 7.5, 7.48], 'Close': [7.46, 7.48, 7.52, 7.54, 7.5]} df = pd.DataFrame(data) # 将日期字符串转换成数值型时间戳 df['Date'] = pd.to_datetime(df['Date']) df['Date'] = df['Date'].apply(mdates.date2num) fig, ax = plt.subplots() candlestick_ohlc(ax, df.values, width=0.6, colorup='g', colordown='r') ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d')) plt.xticks(rotation=45) plt.grid(True) plt.show() ``` 这段代码展示了如何创建一个包含 OHLC 数据的数据帧,并将其传递给 `candlestick_ohlc()` 函数以生成图表[^1]。 #### 方法二:结合 Pandas DataReader 获取真实市场行情并绘图 如果希望获取真实的股市交易日志,则可以通过第三方 API 或者本地文件加载实际的历史价格记录。这里展示了一个例子,它通过 Yahoo Finance 下载 AAPL 股票过去一年的日度收盘价: ```python import yfinance as yf import datetime import matplotlib.pyplot as plt from mpl_finance import candlestick_ohlc import matplotlib.dates as mdates end_date = datetime.datetime.now().date() start_date = end_date - datetime.timedelta(days=365*2) ticker_symbol = "AAPL" stock_data = yf.download(ticker_symbol, start=start_date, end=end_date) stock_data.reset_index(inplace=True) stock_data["Date"] = stock_data["Date"].map(mdates.date2num) fig, ax = plt.subplots(figsize=(10, 6)) formatter = mdates.DateFormatter("%Y-%m-%d") ax.xaxis.set_major_formatter(formatter) locator = mdates.DayLocator(interval=10) ax.xaxis.set_major_locator(locator) candlestick_ohlc(ax=ax, quotes=stock_data[['Date', 'Open', 'High', 'Low', 'Close']].values, width=.6, colorup='green', colordown='red') plt.title(f"{ticker_symbol} Candlestick Chart Over Last Two Years", fontsize=16) plt.xlabel('Date', fontsize=14) plt.ylabel('Price (USD)', fontsize=14) plt.tight_layout() for label in ax.get_xticklabels(): label.set_rotation(45) plt.grid(True) plt.show() ``` 此脚本不仅能够下载指定时间段内的历史股价信息,还能自动调整 X 轴标签以便更好地显示大量数据点[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

happybasic

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

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

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

打赏作者

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

抵扣说明:

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

余额充值