python - 如何在 tkinter 中显示熊猫数据农场
问题描述
我从 python 中的 csv 文件创建了一个 pandas 数据框。如何在 tkinter 窗口中显示此数据框。
import pandas as pd
methods = pd.read_csv('metode.csv')
methods = methods.drop(methods.columns[[0]], axis=1)
解决方案
这是创建具有平方根的 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 文档)
推荐阅读
- sql-server - Presto 运行速度比 SQL Server 慢
- c# - 在使用 C#.NET 的方法中正确并行化许多小任务
- c# - 将行数据从 LINQ 中的分组数据转换为列
- mstest - 如何配置 SpecFlow 以使用 MS Test v2 中的 [DoNotParallelize] 属性?
- excel - 将 Excel 行单元格放在彼此下方的一列中,其序列号重复
- c++ - 用算法查找回文
- laravel - 当函数中有多个联合表时按表过滤
- excel - 尝试在工作表上对形状进行分组时出现“未找到具有指定名称的项目”错误
- assembly - 了解条件跳转
- python - Python - 将内存中的 ZipFile 对象加载为字节