Как отобразить DataFarme панды в Tkinter - PullRequest
0 голосов
/ 29 октября 2019

Я создал pandas dataframe из файла csv в python. Как отобразить этот фрейм данных в окне tkinter.

import pandas as pd
methods = pd.read_csv('metode.csv')
methods = methods.drop(methods.columns[[0]], axis=1)

1 Ответ

0 голосов
/ 29 октября 2019

Вот пример создания CSV-файла с квадратными корнями;Чтение CSV и построение его в Tkinter. Чтобы захватить фигуру matplotlib, вы должны использовать FigureCanvasTkAgg и связать график mpl с цифрой tkinter с ax=tk_ax, как в примере ниже.

import pandas as pd
import tkinter as tk
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg

# create the csv file with square roots
squareroots = [(i, i**0.5) for i in range(0, 100)]
squareroot_df = pd.DataFrame(squareroots, columns=['i', 'i^0.5'])
squareroot_df.to_csv('temp_squareroots.csv', index=False)

# set up the tkinter GUI
root = tk.Tk()
fig, tk_ax = plt.subplots(figsize=(10, 10))
mpl_plot = FigureCanvasTkAgg(fig, root)
mpl_plot.get_tk_widget().pack()

# read the csv file
square_roots_df = pd.read_csv('temp_squareroots.csv')

# plot the values in the data frame and invert the x-axis
mpl_ax = square_roots_df.plot(x='i', y='i^0.5', color='firebrick', ax=tk_ax)
mpl_ax.invert_xaxis()

root.mainloop()

В любом случае, это намного прощепросто заговор в matplotlib:

import pandas as pd
import matplotlib.pyplot as plt

squareroots = [(i, i**0.5) for i in range(0, 100)]
squareroot_df = pd.DataFrame(squareroots, columns=['i', 'i^0.5'])
squareroot_df.to_csv('temp_squareroots.csv', index=False)

square_roots_df = pd.read_csv('temp_squareroots.csv')

ax = square_roots_df.plot(x='i', y='i^0.5', color='firebrick')
ax.invert_xaxis()

plt.show()

Примечание. Я добавил mpl_ax.invert_xaxis() только для того, чтобы показать, что вы можете настроить свой график, манипулируя объектом mpl_ax. (см. Документация Matplotlib)

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