Я пытаюсь распечатать свой фрейм данных в окне pygame. Я знаю, что это не очень хорошая вещь, но я должен сделать это, чтобы мои данные были видны и не печатались нормально.
У меня есть этот словарь:
Y = {a: dict(b) for a, b in X.items()}
print(Y)
the результат:
{(0, 0): {(0, 0): 0, (0, 1): 1, (0, 2): 2, (0, 3): 3, (1, 3): 4, (0, 4): 4, (0, 5): 7, (1, 5): 6, (1, 0): 9, (2, 0): 8, (1, 1): 10, (1, 2): 5, (2, 2): 6, (1, 4): 5, (2, 1): 7, (2, 3): 7, (2, 4): 8, (2, 5): 9}, (0, 1): {(0, 1): 0, (0, 0): 1, (0, 2): 1, (0, 3): 2, (1, 3): 3, (0, 4): 3, (0, 5): 6, (1, 5): 5, (1, 0): 8, (2, 0): 7, (1, 1): 9, (1, 2): 4, (2, 2): 5, (1, 4): 4, (2, 1): 6, (2, 3): 6, (2, 4): 7, (2, 5): 8}, (0, 2): {(0, 2): 0, (0, 1): 1, (0, 3): 1, (0, 0): 2, (1, 3): 2, (0, 4): 2, (0, 5): 5, (1, 5): 4, (1, 0): 7, (2, 0): 6, (1, 1): 8, (1, 2): 3, (2, 2): 4, (1, 4): 3, (2, 1): 5, (2, 3): 5, (2, 4): 6, (2, 5): 7}, (0, 3): {(0, 3): 0, (0, 2): 1, (1, 3): 1, (0, 4): 1, (0, 0): 3, (0, 1): 2, (0, 5): 4, (1, 5): 3, (1, 0): 6, (2, 0): 5, (1, 1): 7, (1, 2): 2, (2, 2): 3, (1, 4): 2, (2, 1): 4, (2, 3): 4, (2, 4): 5, (2, 5): 6}, (1, 3): {(1, 3): 0, (0, 3): 1, (1, 2): 1, (1, 4): 1, (0, 0): 4, (0, 1): 3, (0, 2): 2, (0, 4): 2, (0, 5): 3, (1, 5): 2, (1, 0): 5, (2, 0): 4, (1, 1): 6, (2, 2): 2, (2, 1): 3, (2, 3): 3, (2, 4): 4, (2, 5): 5}, (0, 4): {(0, 4): 0, (0, 3): 1, (0, 0): 4, (0, 1): 3, (0, 2): 2, (1, 3): 2, (0, 5): 5, (1, 5): 4, (1, 0): 7, (2, 0): 6, (1, 1): 8, (1, 2): 3, (2, 2): 4, (1, 4): 3, (2, 1): 5, (2, 3): 5, (2, 4): 6, (2, 5): 7}, (0, 5): {(0, 5): 0, (1, 5): 1, (0, 0): 7, (0, 1): 6, (0, 2): 5, (0, 3): 4, (1, 3): 3, (0, 4): 5, (1, 0): 8, (2, 0): 7, (1, 1): 9, (1, 2): 4, (2, 2): 5, (1, 4): 2, (2, 1): 6, (2, 3): 6, (2, 4): 7, (2, 5): 8}, (1, 5): {(1, 5): 0, (0, 5): 1, (1, 4): 1, (0, 0): 6, (0, 1): 5, (0, 2): 4, (0, 3): 3, (1, 3): 2, (0, 4): 4, (1, 0): 7, (2, 0): 6, (1, 1): 8, (1, 2): 3, (2, 2): 4, (2, 1): 5, (2, 3): 5, (2, 4): 6, (2, 5): 7}, (1, 0): {(1, 0): 0, (2, 0): 1, (1, 1): 1, (0, 0): 9, (0, 1): 8, (0, 2): 7, (0, 3): 6, (1, 3): 5, (0, 4): 7, (0, 5): 8, (1, 5): 7, (1, 2): 4, (2, 2): 3, (1, 4): 6, (2, 1): 2, (2, 3): 4, (2, 4): 5, (2, 5): 6}, (2, 0): {(2, 0): 0, (1, 0): 1, (2, 1): 1, (0, 0): 8, (0, 1): 7, (0, 2): 6, (0, 3): 5, (1, 3): 4, (0, 4): 6, (0, 5): 7, (1, 5): 6, (1, 1): 2, (1, 2): 3, (2, 2): 2, (1, 4): 5, (2, 3): 3, (2, 4): 4, (2, 5): 5}, (1, 1): {(1, 1): 0, (1, 0): 1, (0, 0): 10, (0, 1): 9, (0, 2): 8, (0, 3): 7, (1, 3): 6, (0, 4): 8, (0, 5): 9, (1, 5): 8, (2, 0): 2, (1, 2): 5, (2, 2): 4, (1, 4): 7, (2, 1): 3, (2, 3): 5, (2, 4): 6, (2, 5): 7}, (1, 2): {(1, 2): 0, (1, 3): 1, (2, 2): 1, (0, 0): 5, (0, 1): 4, (0, 2): 3, (0, 3): 2, (0, 4): 3, (0, 5): 4, (1, 5): 3, (1, 0): 4, (2, 0): 3, (1, 1): 5, (1, 4): 2, (2, 1): 2, (2, 3): 2, (2, 4): 3, (2, 5): 4}, (2, 2): {(2, 2): 0, (1, 2): 1, (2, 1): 1, (2, 3): 1, (0, 0): 6, (0, 1): 5, (0, 2): 4, (0, 3): 3, (1, 3): 2, (0, 4): 4, (0, 5): 5, (1, 5): 4, (1, 0): 3, (2, 0): 2, (1, 1): 4, (1, 4): 3, (2, 4): 2, (2, 5): 3}, (1, 4): {(1, 4): 0, (1, 3): 1, (1, 5): 1, (0, 0): 5, (0, 1): 4, (0, 2): 3, (0, 3): 2, (0, 4): 3, (0, 5): 2, (1, 0): 6, (2, 0): 5, (1, 1): 7, (1, 2): 2, (2, 2): 3, (2, 1): 4, (2, 3): 4, (2, 4): 5, (2, 5): 6}, (2, 1): {(2, 1): 0, (2, 0): 1, (2, 2): 1, (0, 0): 7, (0, 1): 6, (0, 2): 5, (0, 3): 4, (1, 3): 3, (0, 4): 5, (0, 5): 6, (1, 5): 5, (1, 0): 2, (1, 1): 3, (1, 2): 2, (1, 4): 4, (2, 3): 2, (2, 4): 3, (2, 5): 4}, (2, 3): {(2, 3): 0, (2, 2): 1, (2, 4): 1, (0, 0): 7, (0, 1): 6, (0, 2): 5, (0, 3): 4, (1, 3): 3, (0, 4): 5, (0, 5): 6, (1, 5): 5, (1, 0): 4, (2, 0): 3, (1, 1): 5, (1, 2): 2, (1, 4): 4, (2, 1): 2, (2, 5): 2}, (2, 4): {(2, 4): 0, (2, 3): 1, (2, 5): 1, (0, 0): 8, (0, 1): 7, (0, 2): 6, (0, 3): 5, (1, 3): 4, (0, 4): 6, (0, 5): 7, (1, 5): 6, (1, 0): 5, (2, 0): 4, (1, 1): 6, (1, 2): 3, (2, 2): 2, (1, 4): 5, (2, 1): 3}, (2, 5): {(2, 5): 0, (2, 4): 1, (0, 0): 9, (0, 1): 8, (0, 2): 7, (0, 3): 6, (1, 3): 5, (0, 4): 7, (0, 5): 8, (1, 5): 7, (1, 0): 6, (2, 0): 5, (1, 1): 7, (1, 2): 4, (2, 2): 3, (1, 4): 6, (2, 1): 4, (2, 3): 2}}[!
Затем я могу сохранить его в фрейм данных:
df = pd.DataFrame(Y)
df.index = [*df.index]
df.columns = [*df.columns]
print(df)
, и результат:
(0, 0) (0, 1) (0, 2) (0, 3) ... (2, 1) (2, 3) (2, 4) (2, 5)
(0, 0) 0 1 2 3 ... 7 7 8 9
(0, 1) 1 0 1 2 ... 6 6 7 8
(0, 2) 2 1 0 1 ... 5 5 6 7
(0, 3) 3 2 1 0 ... 4 4 5 6
(1, 3) 4 3 2 1 ... 3 3 4 5
(0, 4) 4 3 2 1 ... 5 5 6 7
(0, 5) 7 6 5 4 ... 6 6 7 8
(1, 5) 6 5 4 3 ... 5 5 6 7
(1, 0) 9 8 7 6 ... 2 4 5 6
(2, 0) 8 7 6 5 ... 1 3 4 5
(1, 1) 10 9 8 7 ... 3 5 6 7
(1, 2) 5 4 3 2 ... 2 2 3 4
(2, 2) 6 5 4 3 ... 1 1 2 3
(1, 4) 5 4 3 2 ... 4 4 5 6
(2, 1) 7 6 5 4 ... 0 2 3 4
(2, 3) 7 6 5 4 ... 2 0 1 2
(2, 4) 8 7 6 5 ... 3 1 0 1
(2, 5) 9 8 7 6 ... 4 2 1 0
Мой вопрос: можно ли распечатать этот последний результат на pygame? Моя идея - сохранить каждую строку в массиве, а затем распечатать каждую строку массива отдельно и в правильном порядке. Я сделал это так:
def printAM(x, y, cella, df):
arraydf = df.to_numpy()
y_offset = 0
for line in arraydf:
textsurface = myfontsmall.render(str(line), False, (255, 255, 255))
screen.blit(textsurface, (x, y+y_offset))
y_offset += cella
pygame.display.update()
Но результат не очень хороший, как видно из этого изображения результата .
Как я могу сделать режим красивым? И как вы думаете, возможно ли иметь имена узлов в первой строке и в последнем столбце?
Спасибо