2016-06-24 4 views
2

Я пытаюсь создать дополнительные вертикальные пробелы в легенде, созданной с использованием matplotlib.pyplot. Тем не менее, нужно, чтобы этот дополнительный пробел находился только между двумя записями в легенде, в то время как остальные записи остались нетронутыми. У меня есть MWE и изображение, которое он создает, отредактировано, чтобы показать, где я хочу лишние пробелы.Выборочные вертикальные пробелы в легенде matplotlib

import matplotlib.pyplot as plt 

plt.plot([0,1],[.2,.2],label = "A") 
plt.plot([0,1],[.4,.4],label = "B") 
plt.plot([0,1],[.6,.6],label = "C") 
plt.plot([0,1],[.8,.8],label = "D") 

plt.legend(loc='upper right',labelspacing=.3) 
plt.ylim(0,1) 

plt.show() 

enter image description here

ответ

2

Вы, вероятно, придется использовать прокси Artist для этого. Вот пример:

a, = plt.plot([0,1],[.2,.2],label = "A") 
b, = plt.plot([0,1],[.4,.4],label = "B") 
c, = plt.plot([0,1],[.6,.6],label = "C") 
d, = plt.plot([0,1],[.8,.8],label = "D") 

plt.legend([a,b,c,matplotlib.lines.Line2D([],[],linestyle=''),d],['A','B','C','','D'], loc='upper right',labelspacing=.3) 
plt.ylim(0,1) 

enter image description here

+0

Когда я использую свой код, я получаю коробку вокруг моей легенды (это хорошо, я хочу коробку). Почему у вашего изображения нет рамки вокруг легенды, несмотря на то, что он является одним и тем же кодом? – Joshua

+0

Возможно, разница в нашем файле matplotlibrc http://matplotlib.org/users/customizing.html –