最近做数据分析的时候,我总想把行情数据可视化看看,K线图是最直观的一种方式。我最开始只是想看看历史价格的变化,没想到慢慢弄下来,画K线成了一件挺有意思的事情。Python里其实有挺多方式可以做,操作简单,但能把数据“活”起来那种感觉挺让人上瘾的。

数据准备

我平时会先把历史行情数据整理成CSV,结构简单:日期、开盘、收盘、最高、最低、成交量。大概像这样:

date

open

high

low

close

volume

2026-05-01

100.5

102.0

99.8

101.2

50000

2026-05-02

101.2

103.5

100.0

102.8

45000

读取和处理数据很直接,用pandas就够了:

import pandas as pd

df = pd.read_csv("data.csv", parse_dates=['date'])
df.set_index('date', inplace=True)
print(df.head())

这里要注意,K线绘图库通常需要日期作为索引,否则图会画不出来或者显示异常。

基础K线图

最初我只想看看开盘价和收盘价的变化,使用绘图库画出来就行:

import mplfinance as mpf

mpf.plot(df, type='candle', volume=True)

几行代码就能得到完整K线,下面还有成交量柱状图,红绿颜色默认对应涨跌,非常直观。看到图那一刻,感觉数据真的“动”起来了。

增加均线观察趋势

观察数据的时候,我喜欢加均线,这样趋势一眼就看得清楚。比如5日和20日均线:

mpf.plot(df, type='candle', volume=True, mav=(5,20))

均线交叉、短期与中期趋势都一目了然。图表风格也可以调整,让可视化更舒服:

mpf.plot(df, type='candle', volume=True, mav=(5,20), style='yahoo')

风格多了,挑自己喜欢的就行。颜色、线条粗细都可以自定义,完全可以按照需求调整。

不同时间周期对比

有时候想同时看日线和周线,就要先处理数据。pandas的resample非常方便:

weekly = df.resample('W').agg({
    'open':'first',
    'high':'max',
    'low':'min',
    'close':'last',
    'volume':'sum'
})

mpf.plot(weekly, type='candle', volume=True, mav=(5,20))

这样就能看到周线K线走势,对比日线变化,做趋势分析会更直观。

小技巧

我发现K线图不仅能看涨跌,还能顺便观察成交量变化、均线交叉情况,对策略或分析非常有帮助。最关键的是数据要干净,列名、索引一定要对齐,否则图画不出来或者结果乱。

我一般习惯在分析前先看看历史数据图,再结合均线和成交量做判断。K线图出来的那一刻,总觉得数据有了生命,比单看数字直观多了,也更容易发现规律。

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐