如何增加 gnuplot 中的颜色数量?
How to increase the number of color in gnuplot?
我有一个包含 16 个数据块的文件,由两个空行分隔,这样我就可以通过选择其索引来绘制每个块。我想做的是自动为每个数据块赋予不同的颜色,所以我尝试了:
plot "data.csv" using 2:1:-2 lc var
问题是所有 16 个数据块都没有足够的颜色,即某些数据集具有相同的颜色,而我想自动为每个数据块关联一个唯一的颜色?有办法做到这一点吗?
您可以通过多种方式 select 颜色,自动或非自动。
linecolor
(或lc
)说明符可以采用
- 一个整数到 select 一种内置线型及其
相关颜色,
- 作为字符串的颜色名称,例如“blue”(在交互式 gnuplot 中
会话,执行
show colors
以查看可用颜色的完整列表
名字),
- a colorspec(这可以有多种形式,做
help colorspec
更多
详情)。
我采用了我能想到的最懒惰的方法,即随机 select 颜色!
我向 lc
提供了以下形式的颜色规范:
rgbcolor <integer val> # integer value representing AARRGGBB
在下面的脚本中,<integer val>
是随机生成的,
在 [000000, FFFFFF] 范围内,其中
FFFFFF(基数 16)= 16**6-1(基数 10)= 16777215(基数 10)。
这 selects 种颜色在所有可能颜色的集合中随机出现
gnuplot 支持,忽略透明度(AARRGGBB 中的 AA)。
unset key
set xrange [0:10]
seed = 4
x = rand(seed)
N = 16**6-1
plot for [i=1:16] x*i lc rgbcolor rand(0)*N
rand(0)
给出 0 到 1 之间的数字,所以 rand(0)*N
给出 0 到 16**6-1 之间的数字。
由于种子是固定的(我选了4个),随机数的序列和
每次 运行 脚本时颜色都是一样的。你可以试试
不同的种子,直到所有的线条颜色看起来足够不同。
通过上面的脚本,我得到了这个情节:
通常的做法是从调色板中取N片。您可以通过多种不同的方式定义调色板,但只要调色板中没有颜色重复,此方法就会为您提供 N 种不同的颜色。
您具体询问了 16 种颜色,因此使用默认调色板的最小示例是:
N = 16
plot for [i= 0 : N-1] "data.csv" index i using 2:1 lc palette frac (i * 1./N)
我有一个包含 16 个数据块的文件,由两个空行分隔,这样我就可以通过选择其索引来绘制每个块。我想做的是自动为每个数据块赋予不同的颜色,所以我尝试了:
plot "data.csv" using 2:1:-2 lc var
问题是所有 16 个数据块都没有足够的颜色,即某些数据集具有相同的颜色,而我想自动为每个数据块关联一个唯一的颜色?有办法做到这一点吗?
您可以通过多种方式 select 颜色,自动或非自动。
linecolor
(或lc
)说明符可以采用
- 一个整数到 select 一种内置线型及其 相关颜色,
- 作为字符串的颜色名称,例如“blue”(在交互式 gnuplot 中
会话,执行
show colors
以查看可用颜色的完整列表 名字), - a colorspec(这可以有多种形式,做
help colorspec
更多 详情)。
我采用了我能想到的最懒惰的方法,即随机 select 颜色!
我向 lc
提供了以下形式的颜色规范:
rgbcolor <integer val> # integer value representing AARRGGBB
在下面的脚本中,<integer val>
是随机生成的,
在 [000000, FFFFFF] 范围内,其中
FFFFFF(基数 16)= 16**6-1(基数 10)= 16777215(基数 10)。
这 selects 种颜色在所有可能颜色的集合中随机出现
gnuplot 支持,忽略透明度(AARRGGBB 中的 AA)。
unset key
set xrange [0:10]
seed = 4
x = rand(seed)
N = 16**6-1
plot for [i=1:16] x*i lc rgbcolor rand(0)*N
rand(0)
给出 0 到 1 之间的数字,所以 rand(0)*N
给出 0 到 16**6-1 之间的数字。
由于种子是固定的(我选了4个),随机数的序列和 每次 运行 脚本时颜色都是一样的。你可以试试 不同的种子,直到所有的线条颜色看起来足够不同。
通过上面的脚本,我得到了这个情节:
通常的做法是从调色板中取N片。您可以通过多种不同的方式定义调色板,但只要调色板中没有颜色重复,此方法就会为您提供 N 种不同的颜色。
您具体询问了 16 种颜色,因此使用默认调色板的最小示例是:
N = 16
plot for [i= 0 : N-1] "data.csv" index i using 2:1 lc palette frac (i * 1./N)