2015-02-03 2 views
0

Я пытаюсь построить график линии и разброс графика на той же фигуре. График рассеяния выглядит великолепно, но линия отображается по неправильным индексам. То есть данные графика разброса находятся вдоль правильных индексов [0,4621], но график линии «сгруппирован» в индексы [3750, 461].matplotlib, строя неправильные индексы

plt.figure() 
    plt.plot(ii, values, 
    color='k', alpha=0.2) 
    plt.scatter(ii, scores, 
    color='g', s=20, alpha=0.3, marker="o") 
    plt.scatter(jj, scores[scores >= threshold], 
    color='r', s=20, alpha=0.7, marker="o") 
    plt.scatter(kk, labels[labels==1], 
    color='k', s=20, alpha=1.0, marker="+") 
    plt.axis([0, len(labels), 0, 1.1]) 
    plt.title(relativePath) 
    plt.show() 

here's the resulting plot

+0

Я боюсь, что вы даете слишком мало информации, чтобы ответить на ваш вопрос, не могли бы вы проверить, что дает вам «plt.plot (ii, values)». –

+0

Какова форма 'ii' и' values'? Являются ли они двумерными массивами? Если это так, 'plot' интерпретирует его по-разному (несколько строк), чем для 1D массива. –

ответ

0

Вопрос заключается в оси настройки plt.axis([0, len(labels), 0, 1.1]), поскольку values не вписывается в рамки у-оси. Поэтому нормализация списка values удерживает его в пределах указанных границ [0,1.1]. Это делается с помощью norm_values = [float(v)/max(values) for v in values].

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