【问题标题】:MatPlotLib Scatter not working Inside FunctionMatPlotLib Scatter 在函数内部不起作用
【发布时间】:2021-05-29 09:52:11
【问题描述】:

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

def make_graph(value1, value2, namevalue, label1, label2):
    print(value1, value2, 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() 中编写的同一段代码时,它给了我所需的输出。 但是以这种方式,每次我编写一些其他函数时,我都必须重写那个绘图的东西,这确实是一个问题。知道如何解决这个问题吗?

【问题讨论】:

  • 这个问题不能用随机数据来重现,比如配速、投篮、名字。您使用的任何可能干扰的特定环境(PyCharm、Spyder、Anaconda)?您确定提供给函数的变量包含值吗?

标签: python function matplotlib data-science scatter-plot


【解决方案1】:

这是你的 x 和 y 限制:

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 限制意味着您看不到。

【讨论】:

  • 非常感谢。真是菜鸟的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多