带有图例标签的单行上的matplotlib图例标题

时间:2019-01-02 06:37:36

标签: python matplotlib

我正在使用图例标题(通过matplotlib),该标题放置在图例条目上方,但是我想在情节下创建一个很长的稀薄图例。 ncol将创建一行图例条目,但是我不知道如何在同一行上获得图例标题。

MWE

import numpy as np

%matplotlib notebook
import matplotlib
from matplotlib import pyplot as plt

X1 = np.random.rand(50)
X2 = np.random.rand(50)
Y = np.random.rand(50)

plt.plot(X1,Y,X2,Y)
plt.legend(labels = ['X1','X2'],ncol=2,title='legend title:',loc=3)

我希望图例看起来像

  

传奇标题:----- X1 ----- X2

代替

  

图例标题:
  ----- X1 ----- X2

1 个答案:

答案 0 :(得分:1)

这是一个代码-

labels =["X1", "X2"]
fig, ax = plt.subplots()
val = [X1, X2]
for i in range(2):
    ax.plot(val[i], Y, label=labels[i]) # Plotting one at a time
h, l = ax.get_legend_handles_labels() # Extracting handles and labels
ph = [plt.plot([],marker="", ls="")[0]] # Canvas
handles = ph + h
labels = ["legend title:"] + l  # Merging labels
plt.legend(handles, labels, ncol=3)
plt.show()

plt

有关更多信息,请参见here