2016-12-06 6 views
-2

Все! Мне нужно построить несколько строк, используя matplotlib (не обязательно) из четырех массивов в одном графике. В настоящее время мой код:Matplot многострочный график в python

plt.plot(PTime,PReactions,NYTime,NYReactions,LTime,LReactions,SFTime,SFReactions) 
plt.show()  

PTime и PReactions - это имя массивов и т. Д.
Это выход из кода выше:

This is the output of the above code

Но я не хочу этого типа графа. Я хочу несколько строк, представляющих разные массивы (разные данные).
Я хочу, чтобы результаты что-то похожее на это:

I want results something similar to this

+0

Ususualy, вы можете просмотреть [Matplotlib Галерея] (HTTP : //matplotlib.org/gallery.html), найдите пример, который имеет [функцию] ant] (http://matplotlib.org/examples/style_sheets/plot_fivethirtyeight.html#style-sheets-example-code-plot-fivethirtyeight-py), выяснить, как они это сделали, а затем адаптироваться. Существует также [учебник Pyplot] (http://matplotlib.org/users/pyplot_tutorial.html#pyplot-tutorial) и, конечно, [документация] (http://matplotlib.org/api/pyplot_api.html#matplotlib .pyplot.plot). – wwii

+0

Можете ли вы предоставить * минимальный * пример двух ваших векторов? – wwii

+0

Возможно ли, что у вас есть только сильно осциллирующие данные, и по этой причине у вас сложилось впечатление, что они построены как области, а не как линии? Если это так, просто попробуйте увеличить масштаб и, вероятно, вы сможете идентифицировать отдельные строки. –

ответ

0

Ваши данные представлены в неправильном порядке. Оно должно быть X, Y:

plt.plot(PReactions, PTime) 
plt.plot(NYReactions, NYTime) 
plt.plot(LReactions, LTime) 
plt.plot(SFReactions, SFTime) 
plt.show() 
+0

Вышеприведенный код работает отлично, но я не хочу, чтобы он генерировал. см. изображения –

+0

А я вижу, что вы выпускаете. Вы смешали значения X и Y, я полагаю, – languitar

+0

Нет, я этого не делал. Значения X и Y соответствуют логике. Текущий результат: https://i.stack.imgur.com/BzmUx.png, и я хочу https://i.stack.imgur.com/B0Okw.png. вы можете помочь? –

0

минимальный рабочий пример:

import matplotlib.pyplot as plt 
import numpy as np 

a=np.linspace(0, 1, 10) 
b=np.linspace(0, 2, 10) 
c=np.linspace(0, 3, 10) 
d=np.linspace(0, 4, 10) 

plt.plot(b,a) 
plt.plot(c,a) 
plt.plot(d,a) 

plt.show() 

дает:

enter image description here

+0

вы можете предложить, как он будет работать на массиве больших размеров? Я имею в виду, что хочу генерировать строки из массивов. Например, если у меня есть «массив», где бы я положил его в np.linespace? –

+0

Извините, я не задаю ваш вопрос :(., A, b, c, d - массивы, поскольку функция np.linspace возвращает массивы. A сохраняет значения x и b, c, d сохраняет значения y. В настоящий момент они имеют длину 10, но вы можете увеличить это значение. Вот несколько уроков python, которые я настоятельно рекомендую вам: https://docs.python.org/3/tutorial/index.html –

+0

У меня есть собственные массивы нет необходимости использовать np.linspace. Как это будет работать? –

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