2016-04-13 5 views
0

Я пытаюсь сделать ошибку с различными маркерными цветами в python 2.7. Кроме того, я включаю в линейные графики. Я нашел здесь путь: matplotlib errorbar plot - using a custom colormap, используя график рассеяния для цветов и errorbar() для баров.matplotlib одна легенда запись слишком много

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

Любые идеи?

Вот мой код:

import pandas as pd 
import matplotlib.pyplot as plt 
import numpy as np 

%matplotlib inline 


data = pd.DataFrame() 
data['x'] = range(10) 
data['y'] = data.x 
data['err'] = .5 
data['col'] = np.where(data.y<5,'r','b') 

### setup 1-1 line 
lin = pd.DataFrame()       # setting 1-1 line 
lin['x'] = range(10) 
lin['y'] = range(10) 

### setup 1-2 line 
lin['x2'] = lin.x 
lin['y2'] = lin.y 

plt.errorbar(data.x, data.y, yerr = data.err, \ 
        xerr = .3, fmt=' ', markersize=4, zorder = 1) 
plt.scatter(data.x,data.y, marker='o', color = data.col, zorder = 2) 
plt.plot(lin.x,lin.y,'g-') 
plt.plot(lin.x2,1.8*lin.y2,'r-') 
plt.legend(['','1-1 line', '1-1.8 line','holla','molla'], loc=4) 

Что я получаю:

enter image description here

Спасибо за вашу помощь!

+0

Я не могу воспроизвести это с помощью вашего кода. – tom

+0

работает просто отлично для меня как со шпионом, так и с jupyter. numpy: 1.11.0, pandas: 0.18.0, mpl: 1.3.1, может быть разница версий? – Robert

+0

Да, это работает, но я не получаю дополнительную запись легенды – tom

ответ

0

Чтобы очистить все это, я отправляю правильный ответ вместо комментариев. Проблема может быть решена путем обновления matplotlib от 1.3.1 до 1.5.1. Легко.

Смежные вопросы