我有几千个要绘制的点(大约10k),我想用Matlab绘制它们,但是为每个点确定不同的大小(如果可能的话,可以选择不同的颜色)。我尝试为每个点制作散点图,但与所有点的单个散点调用相比,它非常慢。有没有办法在Matlab中绘制几个点,每个点的不同属性,在合理的时间内工作?
如果用Matlab无法做到这一点,有没有办法用gnuplot来做呢?
答案 0 :(得分:5)
scatter(x, y, a, c)
获取参数x
和y
,然后a
获取大小,c
获取颜色。 a
可以是单个标量,也可以是每个(x,y)
点大小的向量。 c
可以是RGB triplet或矢量,其大小与x
和y
相同。例如:
x = 1:4;
scatter(x, x, 10*x, x);
结果
所以在你的情况下,也许
scatter(xData, yData, [], 1:10000)
将导致您的数据具有由其在数据数组中的位置确定的不同颜色。
答案 1 :(得分:2)
对于gnuplot来说很简单,假设你用3列编写了你的数据文件,你所要做的就是
plot 'data.dat' u 1:2:3:3 with circles lc palette
HERE您可以找到一些示例(有关帮助类型help circles
)。
如果你想要的只是所谓的变量pointsize (pointsize与实轴无关)你可以使用:
plot 'data.dat' with points ps variable pt 7
HERE您可以找到一些示例(有关帮助类型help pointsize
)。
答案 2 :(得分:2)