for i in range(14): df = dfs[i] stock_name = df['name'].iloc[0] # 获取股票名字 label = '{} '.format(stock_name) # 构造标签 ax.plot(df['date'], df['close'], label=label)放在图里的label挡住了k线
时间: 2023-10-11 15:05:33 浏览: 42
你可以尝试将 label 的位置调整一下,比如将其改为:
```
label = '{} '.format(stock_name)
```
在标签后面加上两个空格,让它不会挡住 K 线。如果还是不行,你可以将 label 的位置移到 K 线的下面,比如:
```
ax.plot(df['date'], df['close'])
ax.text(df['date'].iloc[-1], df['close'].iloc[-1], stock_name, ha='right')
```
这样可以在 K 线的最后一个点下面添加股票名称,不会挡住 K 线。
相关问题
for i in range(14): df = dfs[i] stock_name = df['name'].iloc[0] # 获取股票名字 label = '{} Close'.format(stock_name) # 构造标签 ax.plot(df['date'], df['close'], label=label)如何将label标签改为两列,一列7个
如果要将 label 标签改为两列,每列显示 7 个股票名称,可以分别构造左侧和右侧的标签,然后将它们拼接起来。具体实现如下:
```
for i in range(14):
df = dfs[i]
stock_name = df['name'].iloc[0] # 获取股票名字
if i % 7 == 0: # 每 7 个股票换一行
label_left = '{}\n'.format(stock_name) # 左侧标签
else:
label_left = '{}\n'.format(stock_name)
label_right = 'Close\n' # 右侧标签
label = label_left + label_right # 拼接左右标签
ax.plot(df['date'], df['close'], label=label)
# 设置标签格式,使其显示为两列
handles, labels = ax.get_legend_handles_labels()
labels_new = ['\n'.join(labels[i:i+14]) for i in range(0, len(labels), 14)]
ax.legend(handles, labels_new, loc='upper left')
```
这样,每 7 个股票就会换一行显示,标签就会呈现出两列的效果。注意,在最后需要设置标签格式,将标签显示为两列。这里使用了列表推导式将标签分组,每个组里包含 14 个标签。然后,使用 `join()` 方法将每个组内的标签拼接起来,形成一个带有换行符的字符串。最后,将拼接好的标签字符串传递给 `legend()` 方法,就可以显示为两列的标签。
class TradingEnvironment: def __init__(self, stock_df): self.stock_df = stock_df self.current_step = 0 self.total_steps = len(stock_df) - 1 self.reward_range = (0, 1) def reset(self): self.current_step = 0 return self.stock_df.iloc[self.current_step] def step(self, action): self.current_step += 1 done = self.current_step == self.total_steps obs = self.stock_df.iloc[self.current_step] reward = self._get_reward(action) return obs, reward, done def _get_reward(self, action): if action == 0: # 不持有股票 return 0 elif action == 1: # 持有股票 return self.stock_df.iloc[self.current_step]['close'] / self.stock_df.iloc[self.current_step - 1]['close'] - 1 else: raise ValueError("Invalid action, only 0 and 1 are allowed.")
这段代码是一个交易环境类,用于模拟股票交易的过程。其中包括了初始化环境、重置环境、执行动作、获取奖励等方法。具体来说,reset方法用于重置环境,step方法用于执行动作,_get_reward方法用于获取奖励。在执行动作时,可以选择持有股票或不持有股票,持有股票则可以获得当天的收益率,不持有则获得0的奖励。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)