Matplotlib 如何增加gnuplot中的颜色数?

Matplotlib 如何增加gnuplot中的颜色数?,matplotlib,colors,data-visualization,gnuplot,color-palette,Matplotlib,Colors,Data Visualization,Gnuplot,Color Palette,我有一个文件,其中有16个数据块,由两个空行分隔,这样我可以通过选择其索引来绘制每个块。我想做的是自动为每个数据块赋予不同的颜色,因此我尝试: plot "data.csv" using 2:1:-2 lc var 问题是,没有足够的颜色用于所有16个数据块,即某些数据集具有相同的颜色,而我希望自动将唯一的颜色关联到每个数据块?有什么方法可以做到这一点吗?有很多方法可以自动或不自动选择颜色 linecolor(或lc)说明符可以 一个整数,用于选择一种内置线型及其 相关

我有一个文件,其中有16个数据块,由两个空行分隔,这样我可以通过选择其索引来绘制每个块。我想做的是自动为每个数据块赋予不同的颜色,因此我尝试:

plot "data.csv" using 2:1:-2 lc var 

问题是,没有足够的颜色用于所有16个数据块,即某些数据集具有相同的颜色,而我希望自动将唯一的颜色关联到每个数据块?有什么方法可以做到这一点吗?

有很多方法可以自动或不自动选择颜色

linecolor
(或
lc
)说明符可以

  • 一个整数,用于选择一种内置线型及其 相关颜色
  • 作为字符串的颜色名称,如“蓝色”(在交互式gnuplot中) 会话,请执行
    显示颜色
    以查看可用颜色的完整列表 姓名)
  • colorspec(可采用多种形式,有关详细信息,请执行
    帮助colorspec
    ) 详情)
我采取了我能想到的最懒惰的方法,那就是随机选择颜色

我向
lc
提供了以下形式的颜色规格:

rgbcolor <integer val>  # integer value representing AARRGGBB
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) 
N = 16
plot for [i= 0 : N-1] "data.csv" index i using 2:1 lc palette frac (i * 1./N)