创建自定义绘图时,让函数返回轴对象或图形或其他内容是否更好?

2024-10-01 19:21:30 发布

您现在位置:Python中文网/ 问答频道 /正文

在一个.py文件(模块?)中,我有一些分析数据的函数。例如,getAllRanks(name, gender, files)每年根据人气对一个名字进行排名,其中每年的数据都在一个单独的CSV文件中

在第二个.py文件中,我正在编写一些函数,这些函数获取“分析”函数返回的数据并绘制它

策划工作进行得很顺利,但我正在考虑加快步伐。我想让我的函数返回一个适当的matplotlib对象,我可以将其收集到一个列表或数组中。说到底之后,我可以得到该列表的长度,以确定我的图形的尺寸、子地块的行和列等。然后,我可以迭代我的对象列表,并将它们添加到设计为适合它们的绘图中。我知道如何通过使用子图一次完成这一切,但我希望在这里创建一些更灵活的东西。某些伪代码如下所示:

def getAllRanks(name, files):
    for f in files:
        getRank(file, name)
        data[i] = year, rank

def getAllScores(name, files):
    for f in files:
        getScore(file, name) 
        data[i] = year, score

def plotPopularity(name):
    files = filedialog
    rank_data = getAllRanks(name, files)
    fig, ax = plt.subplots()
    ax.plot(rank_data)

    return "SOME KIND OF OBJECT"

def plotScores(name):
    files = filedialog
    score_data = getAllScores(name)
    fig, ax = plt.subplots()
    ax.plot(score_data)

    return "SOME KIND OF OBJECT"

list.append(plotScores("Sam")
list.append(plotRanks("Sam")
dims = (len(list), 1)  
# format figure dimensions and subplots based on dims here
for i in list:
    plot.add(i)

所以我的问题是,要返回的适当matplotlib对象是什么,我可以在以后收集并添加到自定义绘图中?该对象是ax的实例吗?还是一个数字?我不认为这是一个数字,因为我认为它是一个容器,可以在一个窗口中容纳所有不同的绘图。这完全是另一回事吗

编辑:这可能根本不是一件谨慎的事情,我完全愿意接受这个答案。我只是想学习matplotlib以及如何自己可视化不同的数据集。文档非常好,但我感到困惑,因为使用matplotlib做任何事情至少有3种方法,而且教程没有遵循惯例或解释他们选择的方法,因此很难从中学习


Tags: 文件数据对象函数name绘图列表for

热门问题