我想用Python3画一个图,它可以显示x轴上的作业和y轴上的分数。x轴必须显示从1到M的所有作业,y轴必须显示所有3到12年级的作业。在
输入是M作业的分数矩阵:例如,对于6个作业,我有以下输入:
array([[10, -3, 10, ..., 7, 0, 12],
[12, 12, 12, ..., 10, 0, 12],
[7, 7, 10, ..., 10, 0, 10],
[7, 4, 7, ..., 7, 0, 12],
[-3, 4, 7, ..., 4, 4, 12],
[7, 4, 4, ..., 4, 0, 12]], dtype=object)
绘图还必须包含:
我已经开始尝试用for循环来绘制每个作业,但它似乎不起作用-因此我现在被卡住了。在
^{pr2}$
如果我理解你的问题,这就是你想要的? 不知道你想怎样表示平均成绩,但我把它留给你做练习。在
编辑
对于}数组,它们的维数相同。在这里,我使用
plot()
的每个调用,必须有一个x
数组和一个{enumerate()
遍历数据数组,一次一行,它返回一个索引,我称之为a
,而行,我称之为grades
。共有6行,因此a
将依次取0、1、2、3、4和5。在{{cd9>你想做的是{cd9},因为你想做一个^ 9级的作业。但是,由于
x
和y
需要具有相同的维数,所以我们需要生成一个与grades
具有相同维度的数组,这正是x = a*np.ones(len(grades))
所做的。从那里,你可以做plot(x, grades)
。但是,正如你在问题中指出的那样,同样的分数会重叠。在为了避免重叠,我使用公式} )在
(jitter_max-jitter_min)*np.random.random(size=len(grades))+jitter_min
(see the documentation for ^{[-0.1, 0.1)
之间添加了一个随机数。在要绘制平均值,只需逐行计算平均值,将该值存储在一个数组中,然后根据包含赋值编号(0,1,2,3,…)的同维数组绘制该数组。为了把它画成一条线,而不是简单的点,check outthe documentation for ^{} :
plot(..., ..., 'o-')
相关问题 更多 >
编程相关推荐