我的问题是:
我正在为学生绘制一个包含每个作业成绩的矩阵,例如[作业x成绩],但如果多个学生在同一作业中获得相同的成绩,则这些成绩将相互叠加。我想在每个点的x坐标和y坐标上添加一个小的随机数(介于-0.1和0.1之间)。
答案 0 :(得分:1)
要完全按照你的要求做,你可以做这样的事情 -
assignments = (1:10)'
scores = randi(10, 10, 20);
分配与学生分数的原始情节 -
plot(assignments, scores, '.b')
为每个分数添加一个小的随机偏移量 -
plot(assignments, scores+0.2*(rand(size(scores))-0.5), '.b')
最后,您可以选择更复杂但更漂亮的解决方案 -
counts = zeros(10, 10);
for i = 1:10
for j = 1:10
counts(i, j) = sum(scores(i,:)==j);
end
end
figure();
hold on;
for i = 1:10
for j = 1:10
if counts(i,j) > 0
plot(i, j, 'o', 'MarkerSize', 2*counts(i,j), 'MarkerEdgeColor', 'k', 'MarkerFaceColor', 'b'); hold on;
end
end
end