Jupyter + Matplotlib > plt.cm.Set2の表示 (jetとの違い) | colormap(Set2など)のRGB値取得


動作環境
GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 16.04 LTS desktop amd64
TensorFlow v1.2.1
cuDNN v5.1 for Linux
CUDA v8.0
Python 3.5.2
IPython 6.0.0 -- An enhanced Interactive Python.
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
scipy v0.19.1
geopandas v0.3.0
MATLAB R2017b (Home Edition)
ADDA v.1.3b6

処理概要

make_pov_180121.py > bashの処理(2007年)をPythonで実装(2018年) > 43分の処理は3.5秒になった

Matplotlibで描画処理をしていたが、Povrayでの処理が速いことが分かった。
Povrayで処理する場合、RGB値を自分で設定することになりそう。

Matplotlibで使用していたのはSet2というカラーバーだった。

Set2を使ったコードを実装してみた。

参考: Jupyter | Matplotlib > 2次元データの可視化 > imshow() | scatter()

code

Jupyterコード。

test_colorByRGB_180121.ipynb
%matplotlib inline

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
from pylab import rcParams

rcParams['figure.figsize'] = 7, 3
rcParams['figure.dpi'] = 130

def get_value(ax, ay):
    return ax

# 1. get data
NUM_DATA = 10000
x = np.random.rand(NUM_DATA)
y = np.random.rand(NUM_DATA)
color = get_value(x, y)

# 2. draw data
size = 25  # arbitrary

fig = plt.figure()
ax1 = fig.add_subplot(1,2,1)
im1 = ax1.scatter(x, y, size, color, cmap=plt.cm.Set2)
fig.colorbar(im1)

ax2 = fig.add_subplot(1,2,2)
im2 = ax2.scatter(x, y, size, color, cmap=plt.cm.jet)
fig.colorbar(im2)

fig.tight_layout()

分かった事項

  • jetではなだらかに色が変わる
  • Set2では断続的に色が変わる

RGB値取得

以下のJupyterコードで取得できた。

test_colorByRGB_180121.ipynb(二つ目のセル)
%matplotlib inline

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
from pylab import rcParams

for pos in range(0, 10 + 1):
    val = pos / 10.0
    print(val, plt.cm.Set2(val))

run
0.0 (0.40000000000000002, 0.76078431372549016, 0.6470588235294118, 1.0)
0.1 (0.40000000000000002, 0.76078431372549016, 0.6470588235294118, 1.0)
0.2 (0.9882352941176471, 0.55294117647058827, 0.3843137254901961, 1.0)
0.3 (0.55294117647058827, 0.62745098039215685, 0.79607843137254897, 1.0)
0.4 (0.90588235294117647, 0.54117647058823526, 0.76470588235294112, 1.0)
0.5 (0.65098039215686276, 0.84705882352941175, 0.32941176470588235, 1.0)
0.6 (0.65098039215686276, 0.84705882352941175, 0.32941176470588235, 1.0)
0.7 (1.0, 0.85098039215686272, 0.18431372549019609, 1.0)
0.8 (0.89803921568627454, 0.7686274509803922, 0.58039215686274515, 1.0)
0.9 (0.70196078431372544, 0.70196078431372544, 0.70196078431372544, 1.0)
1.0 (0.70196078431372544, 0.70196078431372544, 0.70196078431372544, 1.0)