假设我有3种交易策略的数据,每种策略都有交易成本.我想在相同的轴上绘制6个变体中每个变量的时间序列(3个策略*2个交易成本).我想"与交易成本"线与绘制alpha=1,并linewidth=1同时我想"无交易成本"与绘制alpha=0.25和linewidth=5.但我希望每个策略的两个版本的颜色都相同.
我想要的是:
fig, ax = plt.subplots(1, 1, figsize=(10, 10))
for c in with_transaction_frame.columns:
ax.plot(with_transaction_frame[c], label=c, alpha=1, linewidth=1)
****SOME MAGIC GOES HERE TO RESET THE COLOR CYCLE
for c in no_transaction_frame.columns:
ax.plot(no_transaction_frame[c], label=c, alpha=0.25, linewidth=5)
ax.legend()
Run Code Online (Sandbox Code Playgroud)
什么是适当的代码放在指示的行上来重置颜色循环,以便在调用第二个循环时"回到开始"?
我的DataFrame对象看起来像
amount
date
2014-01-06 1
2014-01-07 1
2014-01-08 4
2014-01-09 1
2014-01-14 1
Run Code Online (Sandbox Code Playgroud)
我想要一种散布图,其中沿x轴的时间为时间,沿y的量为时间,并通过数据线来引导观察者的眼睛。如果我使用panadas图,df.plot(style="o")那是不太正确的,因为那条线不在那。我想要类似这里的示例。
我对下面计算的斜率值(以度为单位)有疑问:
import pandas as pd
import yfinance as yf
import matplotlib.pyplot as plt
import datetime as dt
import numpy as np
df = yf.download('aapl', '2015-01-01', '2021-01-01')
df.rename(columns = {'Adj Close' : 'Adj_close'}, inplace= True)
x1 = pd.Timestamp('2019-01-02')
x2 = df.index[-1]
y1 = df[df.index == x1].Adj_close[0]
y2 = df[df.index == x2].Adj_close[0]
slope = (y2 - y1)/ (x2 - x1).days
angle = round(np.rad2deg(np.arctan2(y2 - y1, (x2 - x1).days)), 1)
fig, ax1 = plt.subplots(figsize= (15, 6))
ax1.grid(True, linestyle= ':')
ax1.set_zorder(1)
ax1.set_frame_on(False)
ax1.plot(df.index, df.Adj_close, …Run Code Online (Sandbox Code Playgroud)