每个点的散点图具有不同的大小

时间:2016-01-29 01:01:10

标签: matlab plot gnuplot

我有几千个要绘制的点(大约10k),我想用Matlab绘制它们,但是为每个点确定不同的大小(如果可能的话,可以选择不同的颜色)。我尝试为每个点制作散点图,但与所有点的单个散点调用相比,它非常慢。有没有办法在Matlab中绘制几个点,每个点的不同属性,在合理的时间内工作?

如果用Matlab无法做到这一点,有没有办法用gnuplot来做呢?

3 个答案:

答案 0 :(得分:5)

scatter(x, y, a, c)获取参数xy,然后a获取大小,c获取颜色。 a可以是单个标量,也可以是每个(x,y)点大小的向量。 c可以是RGB triplet或矢量,其大小与xy相同。例如:

x = 1:4;
scatter(x, x, 10*x, x);

结果

Example

所以在你的情况下,也许

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)

对于gnuplot,您可以合并pointsize variablelinecolor variablelinecolor palette

set xrange [0:10]
set samples 21
plot '+' using 1:1:(0.2*$1):1 with point pointsize variable linecolor palette pt 7 notitle

enter image description here