程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了MatPlotLib Scatter 在函数内部不起作用大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决MatPlotLib Scatter 在函数内部不起作用?

开发过程中遇到MatPlotLib Scatter 在函数内部不起作用的问题如何解决?下面主要结合日常开发的经验,给出你关于MatPlotLib Scatter 在函数内部不起作用的解决方法建议,希望对你解决MatPlotLib Scatter 在函数内部不起作用有所启发或帮助;

我是 Python 初学者。我一直在尝试使用 MatPlotlib 来比较 FIFA 20 中足球运动员的统计数据。基本上我面临的问题是:

def make_graph(value1,value2,namevalue,label1,label2):
    print(value1,namevalue)
    plt.scatter(value1,value2)
    plt.xlabel(label1)
    plt.ylabel(label2)
    for i in range(len(namevalue)):
        plt.text(value1[i] + 0.3,value2[i] + 0.3,namevalue[i],Fontdict=dict(color='red',size=10),bBox=dict(facecolor = 'yellow',Alpha=0.5))

    plt.xlim(min(value1) - 5,max(value2) + 5)
    plt.ylim(min(value1) - 5,max(value2) + 5)
    plt.show()





def test():

    df = xlrd.open_workbook(path)
    data = df.sheet_by_index(0)

    data.cell_value(0,0)
    name = []
    pace = []
    shoot = []
    for i in range(1,450):
        #print(data.cell_value(i,3))
        buff = str(data.cell_value(i,2)).strip()
        if buff == "LM" or buff == "RM":
            pacebuffer = int(data.cell_value(i,4))
            shootbuffer = int(data.cell_value(i,5))
            if pacebuffer >= 90:
                name.append(data.cell_value(i,3).strip("\n"))
                pace.append(pacebuffer)
                shoot.append(shootbuffer)

    #print(name)
    make_graph(pace,shoot,name,"Pace","Shoot")

特定代码向我展示了一个空图。 但是 当我在 test() 中编写我在 make_graph() 中编写的同一段代码时,它为我提供了所需的输出。 但是这样我每次写其他函数时都必须重写那个绘图的东西,这真的是一个问题。知道如何解决这个问题吗?

解决方法

这是你的 x 和 y lims :

plt.xlim(min(value1) - 5,max(value2) + 5)
plt.ylim(min(value1) - 5,max(value2) + 5)

你应该改为:

plt.xlim(min(value1) - 5,max(value1) + 5)
plt.ylim(min(value2) - 5,max(value2) + 5)

从技术上讲,您的 plt.scatter 是有效的,但是您的 x 和 y lims 意味着您看不到。

大佬总结

以上是大佬教程为你收集整理的MatPlotLib Scatter 在函数内部不起作用全部内容,希望文章能够帮你解决MatPlotLib Scatter 在函数内部不起作用所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: