如何使用matplotlib在python中获得缩放良好的表

如何使用matplotlib在python中获得缩放良好的表,python,matplotlib,formatting,Python,Matplotlib,Formatting,我一直在尝试用python提供一个数据表。我一直在使用matplotlib pyplot模块生成表。不幸的是,我想展示的数据集相当大。因此,当表格显示时,我要么让它显示整个表格,但数据太小而无法读取,要么它以可读的大小显示数据,但切断了表格的其余部分 我的第一个想法是,如果我以可读的方式格式化表格,那么我就可以在交互式导航中使用标准的平移/缩放按钮。然而,在屏幕上点击和拖动似乎根本不会改变桌子。我在pycharm和anaconda上试过这个,以防万一因为某种原因它会有所不同 因此,我想知道,一旦

我一直在尝试用python提供一个数据表。我一直在使用matplotlib pyplot模块生成表。不幸的是,我想展示的数据集相当大。因此,当表格显示时,我要么让它显示整个表格,但数据太小而无法读取,要么它以可读的大小显示数据,但切断了表格的其余部分

我的第一个想法是,如果我以可读的方式格式化表格,那么我就可以在交互式导航中使用标准的平移/缩放按钮。然而,在屏幕上点击和拖动似乎根本不会改变桌子。我在pycharm和anaconda上试过这个,以防万一因为某种原因它会有所不同

因此,我想知道,一旦我以可读的方式格式化了表格,我如何才能在表格周围平移?否则,是否有其他方法可以使用python在表中显示大量数据

另外请注意,我希望在执行代码时显示该表,而不是保存为图像

为了解决这个问题,我一直在使用一些测试代码:

import numpy as np
import matplotlib.pyplot as plt

data=np.random.rand(100, 1)
cols=("column")
nrows, ncols = len(data)+1, len(cols)
hcell = 0.2
wcell = 1.0
hpad, wpad = 0, 0
fig=plt.figure(figsize=(ncols*wcell+wpad, nrows*hcell+hpad))
ax =fig.add_subplot(111)
ax.axis('off')
cellText=data
table=ax.table(cellText=cellText, colLabels=cols, loc='cent')
plt.tight_layout()
plt.show()

尝试使用tablate模块,该模块使用非常简单并支持numpy:

以以下代码开头的示例代码:

import numpy as np
import matplotlib.pyplot as plt

from tabulate import tabulate
data=np.random.rand(100, 1)

print tabulate(data)
使用matplotlib:

import numpy as np
import matplotlib.pyplot as plt

data = np.random.rand(100, 1)

colLabels=("Fist Column")
nrows, ncols = len(data)+1, len(colLabels)
hcell, wcell = 0.1, 0.1 # tweak as per your requirements
hpad, wpad = 0.5, 0.5    
fig=plt.figure(figsize=(ncols*wcell+wpad, nrows*hcell+hpad))
ax = fig.add_subplot(111)
ax.axis('off')

the_table = ax.table(cellText=data,
          colLabels=colLabels,
          loc='center')

plt.show()
参考资料:


  • 尝试使用tablate模块,该模块使用非常简单并支持numpy:

    以以下代码开头的示例代码:

    import numpy as np
    import matplotlib.pyplot as plt
    
    from tabulate import tabulate
    data=np.random.rand(100, 1)
    
    print tabulate(data)
    
    使用matplotlib:

    import numpy as np
    import matplotlib.pyplot as plt
    
    data = np.random.rand(100, 1)
    
    colLabels=("Fist Column")
    nrows, ncols = len(data)+1, len(colLabels)
    hcell, wcell = 0.1, 0.1 # tweak as per your requirements
    hpad, wpad = 0.5, 0.5    
    fig=plt.figure(figsize=(ncols*wcell+wpad, nrows*hcell+hpad))
    ax = fig.add_subplot(111)
    ax.axis('off')
    
    the_table = ax.table(cellText=data,
              colLabels=colLabels,
              loc='center')
    
    plt.show()
    
    参考资料:


  • 谢谢我不知道这个模块。它似乎不是anaconda或pycharm附带的默认模块之一?如果可能的话,我想坚持使用默认模块,这样我的数据就可以被我发送给Hanks的任何人看到!我不知道这个模块。它似乎不是anaconda或pycharm附带的默认模块之一?如果可能的话,我想坚持使用默认模块,这样我的数据就可以让我发送给任何人查看。您可以指定为什么要使用python和matplotlib生成表吗?如果这是关于向某人发送表格数据,为什么不使用OpenDocumentTables或pdf?因此,也许您可以更详细地了解项目的哪些特征使得“使用python在表中显示大量数据”成为必要?您能否具体说明为什么要使用python和matplotlib生成表?如果这是关于向某人发送表格数据,为什么不使用OpenDocumentTables或pdf?所以,也许您可以更详细地了解项目的哪些特性使得“使用python在表中显示大量数据”成为必要?