在 Python 中,“分时”通常指的是分时图(Intraday Chart),即股票、期货或加密货币等金融产品在一天内价格随时间变化的图表。
如果你是想用 Python 绘制分时图,以下是几种常用方法:
✅ 方法一:使用 matplotlib 绘制基础分时图
示例代码:
import matplotlib.pyplot as plt
import pandas as pd
# 假设你有如下数据(时间序列 + 价格)
data = {
'time': pd.date_range('2026-10-01 09:30', periods=240, freq='1min'),
'price': [100 + i 0.1 + (i % 5) 0.05 for i in range(240)]
}
df = pd.DataFrame(data)
# 绘制分时图
plt.figure(figsize=(12, 6))
plt.plot(df['time'], df['price'], label='Price', color='blue')'Intraday Price Chart (分时图)')
plt.xlabel('Time')
plt.ylabel('Price')
plt.legend()
plt.grid(True)
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
✅ 方法二:使用 mplfinance 绘制专业金融分时图
mplfinance
是专门用于金融数据可视化的库,支持 K 线图、分时图、成交量等。
安装:
pip install mplfinance
示例代码:
import mplfinance as mpf
import pandas as pd
# 构造模拟的分时数据(OHLCV)
dates = pd.date_range('2026-10-01', periods=240, freq='1min')
data = pd.DataFrame({
'Open': [100 + i 0.1 for i in range(240)],
'High': [100 + i 0.1 + 0.5 for i in range(240)],
'Low': [100 + i 0.1 - 0.5 for i in range(240)],
'Close': [100 + i 0.1 + (i % 5) 0.05 for i in range(240)],
'Volume': [1000 + i 10 for i in range(240)]
}, index=dates)
# 绘制分时图(使用 line 类型)
mpf.plot(data, type='line', title='Intraday Line Chart', volume=True)
💡 提示:
type='candle'画 K 线,type='line'画分时线,type='ohlc'画 OHLC 图。
✅ 方法三:使用 plotly 实现交互式分时图
plotly 支持交互式图表,适合 Web 展示或数据分析。
安装:
pip install plotly
示例代码:
import plotly.graph_objects as go
import pandas as pd
data = {
'time': pd.date_range('2026-10-01 09:30', periods=240, freq='1min'),
'price': [100 + i 0.1 + (i % 5) 0.05 for i in range(240)]
}
df = pd.DataFrame(data)
fig = go.Figure()
fig.add_trace(go.Scatter(x=df['time'], y=df['price'], mode='lines', name='Price'))
fig.update_layout('Interactive Intraday Chart',
xaxis_title='Time',
yaxis_title='Price',
xaxis=dict(type='date'),
template='plotly_dark'
)
fig.show()
📌 获取真实分时数据
你可以使用以下库获取真实股票分时数据:
| 库 | 说明 |
|---|---|
akshare |
免费,支持 A 股、港股、美股等 |
tushare |
需注册,数据较全 |
|
主要支持美股 |
baostock |
免费,支持 A 股历史数据 |
示例:使用 akshare 获取 A 股分时数据
import akshare as ak
import pandas as pd
# 获取平安银行(000001)2026-10-01 的分时数据
df = ak.stock_zh_a_hist_min_em(symbol="000001", period="20261001")
print(df.head())
# 绘制分时图
import matplotlib.pyplot as plt
plt.plot(df['time'], df['close'])'平安银行分时图')
plt.xlabel('时间')
plt.ylabel('收盘价')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
| 需求 | 推荐库 |
|---|---|
| 简单静态图 | matplotlib |
| 专业金融图 | mplfinance |
| 交互式图表 | plotly |
| 获取真实数据 | akshare / tushare / yfinance |
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/478920.html



