MatLab Plot - 将 0.1 添加到具有相同坐标的点
MatLab Plot - add 0.1 to points with same coordinates
我的问题是:
我正在绘制一个矩阵,其中包含学生每次作业的成绩,例如[assignments x grades],但如果不止一名学生在同一作业中获得相同成绩,则分数将相互叠加。我想向每个点的 x 和 y 坐标添加一个小的随机数(介于 -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
我的问题是:
我正在绘制一个矩阵,其中包含学生每次作业的成绩,例如[assignments x grades],但如果不止一名学生在同一作业中获得相同成绩,则分数将相互叠加。我想向每个点的 x 和 y 坐标添加一个小的随机数(介于 -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