Python: Как маркировать узлы графа - PullRequest
1 голос
/ 28 апреля 2020

Я пытаюсь сгенерировать график, который показывает кучу пузырьков, похожую на этот рисунок: bubbles Я хотел бы изменить несколько вещей на этом рисунке, однако: Прежде всего, аннотация предполагается в go в центре каждого пузыря. Во-вторых, я бы хотел, чтобы пузыри были отделены немного дальше, а затем указывали стрелку от каждого левого пузыря до его правого соседа.

Я спрашиваю: есть ли простой способ сделать это?

Пока что я использую PatchCollection для рисования этих пузырей. И я чувствую, что это не самый простой способ:

    myList = [20, 15, 10, 5, 0, 1, 6, 11, 16, 2^, 22, 17, 12, 7, 3, 8, 13, 18, 23, 24, 19, 14, 9, 4, 8]
    x_coords = list(range(len(myList))

    plt.figure()
    axes = plt.gca()

    for i in range(0, len(myList)):
        x = x_coords[i]
        y = 4
        circle = plt.Circle((x,y), radius=0.5, fill=False, edgecolor='k')
        patches.append(circle)
        plt.annotate(myList[i], (x,y))

    collection = PatchCollection(patches, match_original=True)
    axes.add_collection(collection)
    axes.set_aspect('equal', adjustable='box')
    plt.show()

Я также знаю, как добавить стрелку через аннотацию. Но есть ли способ центрировать метки, то есть цифры?

1 Ответ

0 голосов
/ 28 апреля 2020

Для каждого патча необходимо включить

plt.text(x_center, y_center, 'yourLabelGoesHere')

Возможно, вам придется написать функцию, которая может динамически вычислять x_center и y_center. Из графика, которым вы поделились, я думаю, что y_center, вероятно, может быть константой.

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