for i in range(14): df = dfs[i] label = 'Stock {} Close'.format(i+1) ax.plot(df['date'], df['close'], label=label)中的label如何改为对应股票名字
时间: 2024-01-20 19:03:47 浏览: 24
如果你想将 `label` 改为对应的股票名字,需要先确定股票名字的数据在 `df` 中的哪个列。假设这个列名为 `stock_name`,那么可以将代码改为:
```
for i in range(14):
df = dfs[i]
stock_name = df['stock_name'].iloc[0] # 获取股票名字
label = '{} Close'.format(stock_name) # 构造标签
ax.plot(df['date'], df['close'], label=label)
```
这样就可以获取每个 `df` 中的第一行的 `stock_name` 值,作为该股票的名字,并将其作为标签。
相关问题
# 循环对每个 DataFrame 执行相同的操作 for i in range(14): df = dfs[i] #label = 'Stock {} Close'.format(i+1) 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) ax.plot(df['date'], df['close'], label=label)出来的label为什么会重复
问题出在内层循环中的变量名与外层循环中的变量名重复了。在内层循环中,使用了变量名 i,而这个变量名已经在外层循环中使用过了。所以,内层循环中的 i 覆盖了外层循环中的 i,导致标签重复。解决方法是在内层循环中使用一个不同的变量名。例如,可以将内层循环中的变量名改为 j,如下所示:
```
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)
```
这样,就可以避免标签重复的问题。
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()` 方法,就可以显示为两列的标签。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)