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个
时间: 2023-10-10 14:06:30 浏览: 57
如果要将 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()` 方法,就可以显示为两列的标签。
阅读全文