栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在python中根据条件绘制五彩线

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在python中根据条件绘制五彩线

这是不使用的示例

matplotlib.collections.LineCollection
。这个想法是首先确定交叉点,然后
plot
通过groupby使用函数。

import pandas as pdimport numpy as npimport matplotlib.pyplot as plt# simulate data# =============================np.random.seed(1234)df = pd.Dataframe({'px_last': 100 + np.random.randn(1000).cumsum()}, index=pd.date_range('2010-01-01', periods=1000, freq='B'))df['50dma'] = pd.rolling_mean(df['px_last'], window=50)df['200dma'] = pd.rolling_mean(df['px_last'], window=200)df['label'] = np.where(df['50dma'] > df['200dma'], 1, -1)# plot# =============================df = df.dropna(axis=0, how='any')fig, ax = plt.subplots()def plot_func(group):    global ax    color = 'r' if (group['label'] < 0).all() else 'g'    lw = 2.0    ax.plot(group.index, group.px_last, c=color, linewidth=lw)df.groupby((df['label'].shift() * df['label'] < 0).cumsum()).apply(plot_func)# add ma linesax.plot(df.index, df['50dma'], 'k--', label='MA-50')ax.plot(df.index, df['200dma'], 'b--', label='MA-200')ax.legend(loc='best')



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/626177.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号