Python plt.grid的问题

Python plt.grid的问题,python,matplotlib,Python,Matplotlib,问题是,下图中的网格只能在矩阵内部的每个数组中看到一个非交错数目的“数字”。 任何解决这个问题的建议都将不胜感激。 代码如下: def gradesPlot(grades): for i in range(np.size(grades[0,:])): x = 1+i y=grades[:,i] interval = np.random.uniform(-0.1,0.1,np.size(grades[:,i])) plt.title('Grades per a

问题是,下图中的网格只能在矩阵内部的每个数组中看到一个非交错数目的“数字”。 任何解决这个问题的建议都将不胜感激。 代码如下:

def gradesPlot(grades):
  for i in range(np.size(grades[0,:])):
    x = 1+i
    y=grades[:,i]
    interval = np.random.uniform(-0.1,0.1,np.size(grades[:,i]))

    plt.title('Grades per assignment')
    plt.ylabel('Grades')
    #plt.grid()
    plt.xticks([n for n in range(np.size(grades[0,:])+1)], ['Assignment%i' %n for n in range(np.size(grades[0,:])+1)],rotation=8)  
    plt.ylim([-3,12])
    plt.autoscale(tight=True)
    plt.scatter(x+interval, y+interval)

 gradesPlot(np.array([[12,4,7,4,-3],[7,9,10,12,-3],[2,4,7,10,-3]]))
 #gradesPlot(np.array([[12,4,7,4],[7,9,10,12]]))  
 #gradesPlot(np.array([[12,4,-3],[7,9,-3],[2,4,10]]))
不会做你认为它会做的事。改用
plt.grid(True)

此外,除了
scatter
之外,对
plt
方法的所有调用都应该在for循环之外。您只有一个标题,无需设置太多次。

不符合您的想法。改用
plt.grid(True)


此外,除了
scatter
之外,对
plt
方法的所有调用都应该在for循环之外。您只有一个标题,无需多次设置。

您的意思是:“在矩阵中的每个数组中都有一个不存在的数字。”??你能更好地描述一下问题是什么吗?并提供所需的输出?每个数组都有一个非屋檐大小的gradesPlot(np.array([[12,4,7,4,-3],[7,9,10,12,-3],[2,4,7,10,-3]])如果您将函数gradesPlot(np.array([[12,4,7,4],[7,9,10,12],[2,4,7,10]])作为输入,则显示一个没有网格的绘图。如果你给函数gradesPlot(np.数组([12,4,7,4,-3],[7,9,10,12,-3],[2,4,7,10,-3]])作为输入,它会显示一个网格图。将此代码添加到问题中,它会更具可读性。你的意思是:“在每个数组中,在矩阵中,有一个不存在的“数”。?”??你能更好地描述一下问题是什么吗?并提供所需的输出?每个数组都有一个非屋檐大小的gradesPlot(np.array([[12,4,7,4,-3],[7,9,10,12,-3],[2,4,7,10,-3]])如果您将函数gradesPlot(np.array([[12,4,7,4],[7,9,10,12],[2,4,7,10]])作为输入,则显示一个没有网格的绘图。如果你给函数gradesPlot(np.array([[12,4,7,4,-3],[7,9,10,12,-3],[2,4,7,10,-3]])作为输入,它会显示一个带有网格的绘图。将此代码添加到问题中,它会更具可读性。