物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

ユニバーサルデザイン推奨配色セットをPythonで扱う

cudo.jp

import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
import numpy as np

univ_colors = []
univ_colors.append((255,75,0))
univ_colors.append((255,241,0))
univ_colors.append((3,175,122))
univ_colors.append((0,90,255))
univ_colors.append((77,196,255))
univ_colors.append((255,128,130))
univ_colors.append((246,170,0))
univ_colors.append((153,0,153))
univ_colors.append((128,64,0))
univ_colors.append((255,202,191))
univ_colors.append((255,255,128))
univ_colors.append((216,242,85))
univ_colors.append((191,228,255))
univ_colors.append((255,202,128))
univ_colors.append((119,217,168))
univ_colors.append((201,172,230))
univ_colors.append((255,255,255))
univ_colors.append((200,200,203))
univ_colors.append((132,145,158))
univ_colors.append((0,0,0))

for i,univ_color in enumerate(univ_colors):
    univ_colors[i] = f"#{univ_color[0]:02x}{univ_color[1]:02x}{univ_color[2]:02x}"

ncols = int(len(univ_colors)/2)
nrows = int(len(univ_colors)/ncols)

color_grid = np.array(univ_colors).reshape(nrows, ncols)

fig, ax = plt.subplots(figsize=(ncols, nrows))
ax.set_xticks([])
ax.set_yticks([])

for row in range(nrows):
    for col in range(ncols):
        rect = plt.Rectangle((col, nrows - row - 1), 1, 1, facecolor=color_grid[row, col])
        ax.add_patch(rect)
        ax.text(col + 0.5, nrows - row - 1 + 0.4, color_grid[row, col], color="white", ha='center', va='center', fontsize=10)
        ax.text(col + 0.5, nrows - row - 1 + 0.6, color_grid[row, col], color="black", ha='center', va='center', fontsize=10)
ax.set_xlim(0, ncols)
ax.set_ylim(0, nrows)
plt.gca().set_aspect('equal', adjustable='box')

plt.show()