Построить несколько строк из списка координат на одной фигуре - PullRequest
0 голосов
/ 08 января 2020

Я пытался построить несколько линий на одной фигуре, используя Matplotlib.pyplot.figure. Я смог использовать pyl.plot, но хочу сделать это с помощью pyplot.fig

pyl.plot code:

import matplotlib.pylab as pyl

obstListX = [[90, 90, 100, 100, 200, 200, 240, 240], [300, 300, 308, 308, 300, 300, 330, 330], [170, 206, 226, 260]]
obstListY = [[90, 112, 112, 100, 100, 125, 125, 121], [145, 80, 80, 70, 70, 50, 50, 135], [70, 69, 91, 90]]

pyl.plot(x, y, 'r')
for x, y in zip(obstListX, obstListY):
    pyl.plot(x, y, 'r',color='b')
pyl.xlim(0, 480)
pyl.ylim(0, 320)
pyl.grid(which='major', linestyle='-', linewidth='0.5', color='grey')
pyl.show()

Результат: Result of above code

Как построить линии в виде одной фигуры (как на картинке выше), поскольку я хочу сохранить фигуру в HTML, используя mpld3? В приведенном ниже коде 3 строки идут как 3 разные цифры, как и для l oop, и только последняя преобразуется в html.

import matplotlib.pylab as pyl
import mpld3
from mpld3 import plugins, utils
obstListX = [[90, 90, 100, 100, 200, 200, 240, 240], [300, 300, 308, 308, 300, 300, 330, 330], [170, 206, 226, 260]]
obstListY = [[90, 112, 112, 100, 100, 125, 125, 121], [145, 80, 80, 70, 70, 50, 50, 135], [70, 69, 91, 90]]
for x, y in zip(obstListX, obstListY):
    fig, ax = pyl.subplots()
    ax.plot(x, y)

ax.set(xlabel='time (s)', ylabel='voltage (Label)',
       title='Title goes here')
ax.grid()

mpld3.save_html(fig, "/home/pi/Desktop/fig1.html", template_type='general')
pyl.show()

Обратите внимание, что obstListX ,obstListY список списков координат x и y.

1 Ответ

0 голосов
/ 08 января 2020

Я переместил fig, ax = pyl.subplots() из для l oop, и это сработало.

fig, ax = pyl.subplots()
for x, y in zip(obstListX, obstListY):
    ax.plot(x, y)
...