Несколько участков в матплотлиб - PullRequest
0 голосов
/ 08 сентября 2018

У меня есть следующий код, который рисует два наложенных графика из двумерного списка с помощью matplotlib:

for day in days:

    # Draw a green triangle
    plt.plot(day[0], len(day[1] * 100), 'g^')

    # Draw red dots
    for hour in day[1]:
        plt.plot(day[0], hour, 'ro')

В результате получается график, подобный следующему:

enter image description here

Но я бы хотел, чтобы треугольники были связаны сплошными линиями, чтобы эволюция вдоль оси X была видна более отчетливо.Неважно, что я заменяю «g ^» на «Я не могу рисовать сплошные линии».Как это должно быть сделано?

Спасибо.

Ответы [ 3 ]

0 голосов
/ 08 сентября 2018

Вы можете просто сделать две строки, чтобы соединить треугольники, это не красиво, но работает:

# Draw a green triangles, as you said:
plt.plot(day[0], len(day[1] * 100), 'g^')
# another line to draw the green line:
plt.plot(day[0], len(day[1] * 100), 'g')

Или, прочитав документацию по matplotlib , вы можете написать:

plt.plot(day[0], len(day[1] * 100), linestyle='solid', marker='^', color='g')
0 голосов
/ 08 сентября 2018

Просто замените

plt.plot(day[0], len(day[1] * 100), 'g^')

с

plt.plot(day[0], len(day[1] * 100), '-g^')

Обратите внимание на дополнительные - во второй строке.

0 голосов
/ 08 сентября 2018

Добро пожаловать в переполнение стека!

Если вы действительно хотите перебрать данные и построить их один за другим, вы можете сделать следующее:

green_triangles,_ = plt.plot([],[],'g^')#Could be that you need 'g^-'. Can't test it now
for day in days:

    # Draw a green triangle
    X = np.append(green_triangles.get_xdata(), day[0])
    Y = np.append(green_triangles.get_ydata(), len(day[1] * 100))             
    green_triangles.set_xdata(X)
    green_triangles.set_ydata(Y)

    # Draw red dots
    for hour in day[1]:
        plt.plot(day[0], hour, 'ro')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...