为带移动平均线的股票K线图添加浅蓝色成交量
带成交量模块的苹果股票K线图(含SMA均线)
下面是修改后的代码,新增了浅蓝色的成交量展示模块,通过子图布局将K线/均线与成交量上下排列:
import plotly.graph_objects as go from plotly.subplots import make_subplots import pandas as pd # 加载数据 df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv') # 计算移动平均线 df['SMA30'] = df['AAPL.Close'].rolling(30).mean() df['SMA100'] = df['AAPL.Close'].rolling(100).mean() # 创建2行1列的子图布局,共享X轴并缩小垂直间距 fig = make_subplots(rows=2, cols=1, shared_xaxes=True, vertical_spacing=0.03, subplot_titles=('AAPL K线与均线', '成交量')) # 添加K线图到上方子图 fig.add_trace(go.Candlestick(x=df['Date'], open=df['AAPL.Open'], high=df['AAPL.High'], low=df['AAPL.Low'], close=df['AAPL.Close'], name='K线'), row=1, col=1) # 添加SMA30均线到上方子图 fig.add_trace(go.Scatter(x=df.Date, y=df.SMA30, line=dict(color='orange', width=1), name='SMA30'), row=1, col=1) # 添加SMA100均线到上方子图 fig.add_trace(go.Scatter(x=df.Date, y=df.SMA100, line=dict(color='red', width=3), name='SMA100'), row=1, col=1) # 添加浅蓝色成交量柱状图到下方子图 fig.add_trace(go.Bar(x=df['Date'], y=df['AAPL.Volume'], marker_color='lightblue', name='成交量'), row=2, col=1) # 调整整体布局 fig.update_layout(height=800, title_text='苹果股票走势与成交量', showlegend=False) # 隐藏X轴的滑动缩放条,优化显示 fig.update_xaxes(rangeslider_visible=False, row=1, col=1) fig.update_xaxes(rangeslider_visible=False, row=2, col=1) fig.show()
关键修改说明:
- 用
make_subplots构建2行1列的子图结构,共享X轴避免重复日期显示 - 将K线、均线放在上方子图,成交量柱状图单独放在下方子图
- 成交量柱子设置为
lightblue浅蓝色,符合需求 - 调整布局参数,隐藏X轴缩放条、设置子图标题,提升图表可读性
内容的提问来源于stack exchange,提问作者HnV
相关产品推荐
相关产品推荐

