

以下のページの最後に記載のある不連続のカラーバーをgnuplotで作成したいのですが、やり方がわからず、ご教授いただきたいです。

[不連続カラーバーの作成(Python)](https://hackmd.io/@h2tg95D2RP2ed-D8u-49Mg/S1moBqaRr)

カラーマップの作成方法や、カラーバーのメモリの範囲指定などのやり方はわかるのですが、不連続のカラーバーの作成方法がわかりません。よろしくお願いいたします。

[code]

    gnuplot version 5.4
    
    gnuplot> set pm3d map
    gnuplot> set cbrange[-2:2]
    gnuplot> set cbtics(-2,-1.9,-1,1,2) #この-2,-1.9,-1,1,2の間隔を均等にしたい。
    gnuplot> splot[-2:2]sin(x*y)
    
[/code]

(追記)  
すみません、質問の仕方が悪かったです。  
作成したいのは、以下の画像のような、値としては不連続だが、軸の表示の間隔としては均等なカラーバーです。カラーバーの表示をなんとかしたいです。  
私が最初に示した例だと、-2のすぐ上に-1.9の表示があり、その後少し離れて-1の表示がありますが、これらの表示の間隔を一定にしたいです。

[![](https://i.stack.imgur.com/29Al3.png)](https://i.stack.imgur.com/29Al3.png)


CC BY-SA 4.0
2022-08-20T23:29:20.463
90659
2022-08-21T02:58:52.603
2022-08-21T02:58:52.603
3060
40460
question
gnuplot
gnuplotで不連続なカラーバーを作成したい


グラフの色階層をグラデーションではなく離散的(?)に表示する方法は2種類あります。

[code]

    set palette maxcolors 8
    
[/code]

上のように`maxcolors`を指定する方法と、

[code]

    set palette defined (-2 "black",\
                         -1 "black",\
                         -1 "red",\
                         0 "red",\
                         0 "orange",\
                         1 "orange",\
                         1 "yellow",\
                         2 "yellow")
    
[/code]

上のように始点の色と終点の色に同一色を指定する方法です。  
(`-1`と`0`に同一色の"red"を指定することで、その区間は均一の色で描画されます)

**サンプルコード**

[code]

    $ gnuplot
    Version 5.4 patchlevel 2
    
    set pm3d map
    set cbrange[-2:2]
    set cbtics(-2,-1.9,-1,1,2)
    set palette maxcolors 8
    splot[-2:2]sin(x*y)        # 1回目
    set palette defined (-2 "black",\
                         -1 "black",\
                         -1 "red",\
                         0 "red",\
                         0 "orange",\
                         1 "orange",\
                         1 "yellow",\
                         2 "yellow")
    splot[-2:2]sin(x*y)        # 2回目
    
[/code]

**実行結果**

1回目

[![1回目の結果](https://i.stack.imgur.com/r6SRP.jpg)](https://i.stack.imgur.com/r6SRP.jpg)

2回目

[![2回目の結果](https://i.stack.imgur.com/Fk3qd.jpg)](https://i.stack.imgur.com/Fk3qd.jpg)

**参考資料**

  * [Defining a palette with discrete colors](http://www.gnuplotting.org/defining-a-palette-with-discrete-colors/comment-page-1/)
  * [How to force color range in gnuplotの回答](https://stackoverflow.com/a/36534535/8248751)


CC BY-SA 4.0
2022-08-21T01:02:04.673
90661
2022-08-21T01:02:04.673
9820
90659
answer