2013-11-18 4 views
2

Я делаю графики, где есть несколько баров, отображающих одну и ту же статистику, но в разные периоды времени. Я хочу создать легенду, которая отображает оба цвета для определенного значения в одной строке. См. Прилагаемый график (сделанный в excel) в качестве примера. Graph I'd like to makeMatplotlib - Показать легенду с несколькими цветами, представляющими одно и то же значение

Есть ли у кого-нибудь предложения, как я мог бы это сделать?

Спасибо!

ответ

4

Если кому-то интересно, я нашел псевдо-хак, который делает то, что я хочу. Используя командув свойствах легенды и установив второй набор заголовков легенд только на '', он отобразится правильно. Единственная проблема - форматирование ярлыков с пробелом, чтобы метки выглядели центрически.

Например, приведенный ниже код произвел легенду изображения, показанного в нижней части этого поста:

plt.legend((p3[0], p2[0], p1[0],p7, p6[0], p5[0], p4[0]), 
      ('  Maximum',' 90th Percentile','  Average' ,' MOE Guideline', '', '', ''), ncol=2) 

enter image description here

+0

Вы можете разместить код, который показывает, как это сделать? – tacaswell

+0

@tcaswell: Я просто использую обычную команду legend с ncol в качестве аргумента. 'plt.legend ((p3 [0], p2 [0], p1 [0], p7, p6 [0], p5 [0], p4 [0]), (« Максимум »,« 90-й процент », «Average», «MOE Guideline», «',' ',' '), ncol = 2)'. Вам просто нужно сыграть с пустыми записями, чтобы они выглядели правильно. – HHains

+0

отредактируйте свой ответ, чтобы включить это, комментарии нечитабельны и нестабильны. Это кажется чем-то полезным и должно быть сохранено. – tacaswell