用python画图,一张图上有100多条曲线,没条曲线的label都标在图外的右侧,但是100多个label如果按顺序罗列的话长度太长了,我现在想要让labe标到第10个的时候就另起一列接着标注
时间: 2023-03-25 19:02:22 浏览: 191
您可以使用matplotlib库中的legend()函数来实现这个需求。您可以将所有的label存储在一个列表中,然后在调用legend()函数时,将ncol参数设置为2,这样当标签数量超过10个时,就会自动另起一列继续标注。示例代码如下:
import matplotlib.pyplot as plt
# 生成100多条曲线的数据
x = range(100)
y = [[i * j for i in x] for j in range(100)]
# 生成标签列表
labels = [f"Line {i}" for i in range(100)]
# 绘制曲线
for i in range(100):
plt.plot(x, y[i], label=labels[i])
# 设置legend参数
plt.legend(loc='center left', bbox_to_anchor=(1, .5), ncol=2)
# 显示图形
plt.show()