我想将图例设置为水平显示。我不是指类似于Matplotlib legend vertical rotation中描述的图例的文本。我的实际情况包括使用小部件指定的任意数量的系列。但是以下示例代表了这个挑战的要点:
代码片段:
# Imports
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
# data
np.random.seed(123)
x = pd.Series(np.random.randn(100),index=pd.date_range('1/1/2000', periods=100)).cumsum()
y = pd.Series(np.random.randn(100),index=pd.date_range('1/1/2000', periods=100)).cumsum()
z = pd.Series(np.random.randn(100),index=pd.date_range('1/1/2000', periods=100)).cumsum()
df = pd.concat([x,y,z], axis = 1)
# plot
ax = df.plot()
plt.legend(loc="lower left")
plt.show()
情节:
默认布局似乎是垂直的。
查看help(ax.legend)
和docs的详细信息,似乎没有直接改变为水平的简单方法。或者有吗?
编辑 - 期望的图例:(使用 MS Paint)
ncols
是一个完整的解决方案,而在链接的帖子中只是部分解决方案。在那里使用ncols
甚至不是必需的解决方案的一部分。因此,我认为这个问题根本不是重复的。或者我漏掉了什么吗? - vestland