Построение нескольких значений словаря с помощью matplotlib.pyplot - PullRequest
0 голосов
/ 07 декабря 2018

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

import matplotlib.pyplot as plt

mydict = {
"A":
[1.0, 0.75, 0.0, 0.25, 0.0, 0.5, 0.0, 0.5, 0.0, 0.5, 0.5],
"B":
[1.0, 0.0, 0.0, 0.0, 0.5, 0.6666666666666666, 0.0],
"C":
[0.6666666666666666, 0.3333333333333333, 0.75, 0.25, 0.0, -1, 0.5, 0.75, 0.0, 0.0, 0.0],
"D":
[0.0, 0.0, 0.0, 0.2]}

for k, v in mydict.iteritems():   
    plt.title('Some data for unit: ' + k)
    plt.xlabel('Number of data points')
    plt.ylabel('Some unit')
    plt.figure(k)
    xs = range(0, len(v))
    ys = v
    plt.plot(xs, ys, '-.')
    plt.show

Я относительный новичок, и я, вероятно, пропустил что-то базовое и существенное, но всегда происходит следующее: первоеplot выходит пустым с заголовком для блока A, а последний не имеет заголовка или меток.Так что я предполагаю, что это макетирует пустой график для блока А, выводит данные для блока А на втором графике, блок Б на графике три и т. Д. До пятого графика, которого я не ожидал, поскольку мой диктчетыре пары ключевых значений.

Что мне здесь не хватает?Я пытался часами и просто не могу придумать решение.

Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Вы хотите создать фигуру plt.figure() до , присвоив ей название.Затем вам нужно решить, хотите ли вы показать все цифры одновременно (plt.show() вне цикла) или по одному (внутри цикла). Но , обязательно позвоните plt.show() - помните ().

for k, v in mydict.iteritems():  
    plt.figure(k) 
    plt.title('Some data for unit: ' + k)
    plt.xlabel('Number of data points')
    plt.ylabel('Some unit')
    xs = range(0, len(v))
    ys = v
    plt.plot(xs, ys, '-.')
    plt.show()
0 голосов
/ 07 декабря 2018

Вы создаете новый сюжет, давая название.После этого вы звоните plt.figure(k), создавая еще один новый сюжет.Это график, на котором будут отображаться данные текущего цикла. В следующем цикле вы даете этому графику новый заголовок.Вот почему все кажется смещенным.

Переместите plt.figure(k) к вершине цикла.Вы также можете просто позвонить plt.figure(), если вам не важен номер цифры, который - в большинстве случаев - вам не нужен.

Также plt.show относится только к функции,но вам нужно назвать это: plt.show()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...