有点喜欢这支歌

执著------田震
music
每个夜晚来临的时候
孤独总在我左右
每个黄昏心跳的等候
是我无限的温柔
每次面对你时候
不敢看你的双眸
在我温柔的笑容背后
有多少泪水哀愁
music
不管时空多么转变
世界怎么改变
你的爱总在我心间
你是否明白
我想超越这平凡的生活
注定现在暂时漂泊
无法停止我内心的狂热
对未来的执著

拥抱着你oh my baby
你看到我在流泪
是否爱你让我伤悲
让我心碎
拥抱着你oh my baby
可你知道我无法后退
纵然使我苍白憔悴
伤痕累累
music
### 使用 Matplotlib Finance (mpf) 实现多支股票的叠加蜡烛图 为了在同一图表上绘制多个股票的蜡烛图,可以采用以下策略: #### 数据准备 确保每只股票的数据都已准备好,并且时间序列一致。这通常意味着所有股票的时间戳应该完全匹配。 ```python import pandas as pd from datetime import datetime import mplfinance as mpf ``` #### 创建示例数据集 这里创建两个假设性的股票DataFrame `df_stock1` 和 `df_stock2` 来展示如何处理不同股票的数据。 ```python dates = ['2023-09-%d' % i for i in range(1, 6)] data_stock1 = { 'Date': dates, 'Open': [100+i*2 for i in range(len(dates))], 'High': [105+i*2 for i in range(len(dates))], 'Low': [98+i*2 for i in range(len(dates))], 'Close': [102+i*2 for i in range(len(dates))] } data_stock2 = { 'Date': dates, 'Open': [150-i*2 for i in range(len(dates))], 'High': [155-i*2 for i in range(len(dates))], 'Low': [147-i*2 for i in range(len(dates))], 'Close': [152-i*2 for i in range(len(dates))] } df_stock1 = pd.DataFrame(data_stock1).set_index('Date') df_stock2 = pd.DataFrame(data_stock2).set_index('Date') # 将字符串日期转换成datetime对象 df_stock1.index = pd.to_datetime(df_stock1.index) df_stock2.index = pd.to_datetime(df_stock2.index) print("Stock 1 Data:\n", df_stock1.head()) print("\nStock 2 Data:\n", df_stock2.head()) ``` #### 合并数据框以便于绘图 由于mplfinance不支持直接在一个图表内绘制来自多个DataFrames的数据,因此需要一些技巧来模拟这种效果。一种方法是在同一位置重复调用`mpf.plot()`函数,在每次调用之间调整alpha透明度参数以区分不同的系列[^1]。 另一种更推荐的方法是利用外部轴(external axes),通过matplotlib手动控制布局和样式,从而允许更加灵活地定制化显示[^2]。 ```python fig, axlist = mpf.plot( df_stock1, type='candle', style='charles', # 或者其他你喜欢的主题风格 title="Multiple Stocks Overlay Candlestick Chart", ylabel='Price ($)', figscale=1.5, figsize=(12, 6), returnfig=True ) for idx, stock_df in enumerate([df_stock1, df_stock2]): apds = [] if idx != 0: # Skip first iteration since it's already plotted above. colors = ['g' if close >= open else 'r' for close, open in zip(stock_df['Close'], stock_df['Open'])] candlesticks = [ dict(type='scatter', mode='lines+markers', x=stock_df.index, y=[None]*len(stock_df), # We only want vertical lines here so set Y to None line=dict(color=color), marker=dict(size=0)) for color in colors ] ohlc_data = list(zip(stock_df.index.values.tolist(), stock_df[['Open','High','Low','Close']].values)) scatter_traces = [{'type':'scatter', 'mode':'lines+markers', 'x':[date], 'y':[price], 'line':{'color':clr}, 'marker':{'size':8,'symbol':'triangle-up-down'}} for date, prices, clr in zip(*zip(*ohlc_data),colors)] apds.extend(candlesticks + scatter_traces) mpf.plot(stock_df, addplot=apds, ax=axlist[0], secondary_y=False, alpha=.5*(idx+1)/len([df_stock1, df_stock2]), block=False) plt.show() ``` 这段代码首先正常绘制第一个股票的蜡烛图,接着对于后续每一个额外的股票,构建自定义外观属性列表(`addplot`)并通过设置较低的透明度(alpha value),使得这些新增加的线条不会遮挡之前的图像。注意这里的颜色逻辑是为了模仿标准的上升绿色/下降红色的颜色方案;实际应用中可能还需要进一步优化视觉表现形式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值