LoginSignup
57
49

More than 1 year has passed since last update.

「matplotlib 色 一覧」で検索するのはもう止めよう

Last updated at Posted at 2021-11-11

Abstract

matplotlibで使える色は沢山あります。なので使いたい色を探す際には「matplotlib 色 一覧」と検索される方が多いでしょう。本記事ではコマンドラインに色の一覧を表示させることで、色の一覧確認のためにわざわざブラウザを開く手間を省くmplcolorsを紹介します。

環境

一応今回の記事の環境を。Pythonを動かせれば大きな違いはないかと思います。

  • Windows 10
  • Python 3.7.9

もちろんですが、matplotlibが使えなければ意味がありません。念のため注意。

mplcolors

mplcolors紹介

Tired of searching "matplotlib colors" every week/day/hour? This simple script displays them all conveniently right in your terminal emulator! This uses matplotlib.colors to get color names and RGB values and prints with ANSI escape sequences.

ターミナル上で、matplotlibで使える色の一覧を表示するスクリプト(Python)です。
例えば以下のように表示されます。

This requires a terminal with true color support. Notably, Mac's Terminal.app does not have this and so the colors cannot be properly displayed. I'm not sure that that is a workaround for this. On Mac I suggest switching to a different terminal emulator with more modern support such as kitty or iTerm.

注意点として、Macのデフォルトのターミナルではうまく動作しないようです。

導入

git使える人は適当なディレクトリでいつものようにcloneすればよいですね。

$ git clone https://github.com/AstroBarker/mplcolors.git

使えない・未導入の場合はzipでもダウンロードできます。
mplcolorsにアクセスして、緑のCodeをクリックしてDownload ZIPですね。(画像参照)
image.png

使い方

単にターミナルで色の一覧を表示するだけなら

$ python -u "path/to/mplcolors.py"

とすればよいです。ここでpath/to/mplcolors.pyはcloneもしくは解凍したmplcolors.pyへのフルパスです。
しかしさすがに面倒なのでエイリアスを設定するとよいでしょう。

Windows - コマンドプロンプト

Windowsのコマンドプロンプトの場合はdoskeyを用います。
私の場合、ユーザーディレクトリ直下にマクロをまとめたファイルを作って毎回読み込んでもらう設定にしています。

// もしマクロ定義ファイルを作成していなければ作成
C:\Users\takeMe>doskey /macros > macro.txt
// 適当なエディタで開く
C:\Users\takeMe>notepad macro.txt

作成したmacro.txtに、以下のようなエイリアスを設定します。=などにスペースを挟むとエラーなので注意。
ちなみに$*はエイリアスに続く引数全ての意味です。これを書かないと引数が無視されます。

macro.txt
mplcolors=python -u path\to\mplcolors.py $*

コマンドプロンプトを起動したときにdoskey /macrofile=%USERPROFILE%\macros.txtと打てばエイリアスが登録されます。
しかしながらこれは非常に面倒です。私の場合VSCodeから利用するので、ターミナルのプロファイルの設定で読み込ませています。
terminal.integrated.profiles.windowsの中に

"cmd-Default": {
			"path": [
				"${env:windir}\\Sysnative\\cmd.exe",
				"${env:windir}\\System32\\cmd.exe"
			],
			"args": [
				"/k",
				"chcp",
				"65001",
				"&",
				"doskey",
				"/macrofile=%USERPROFILE%\\macros.txt"
			],
			"icon": "vm",
			"overrideName": true
		},

と登録しています。この中の"args"部分の"/k", "doskey", "/macrofile=%USERPROFILE%\\macros.txt"が起動オプションでマクロのファイルを読み込む設定になっています。ご自身の環境でもきっとそういった工夫ができるはずなので、調べてみてください。

Windows - パワーシェル

パワーシェルの場合はnotepad $PROFILEなどで起動時に読み込まれるファイルを開くことができます。
なおスクリプトの実行許可が必要なため、Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Forceなどで実行の許可をしてください。

開いたら、以下のような関数を加筆します。

Microsoft.PowerShell_profile.ps1
function mplcolors() {
    python -u path\to\mplcolors.py $args
}

$argsはコマンドプロンプトの場合の$*と同じようなもの。
※パワーシェルでは引数付きのエイリアスはSet-Aliasで定義できない模様。

パワーシェルを再起動させると、mplcolorsで動作すると思います。

Linux系統

例によって~/.bashrcに加筆します。

~/.bashrc
alias mplcolors='python /path/to/dir/mplcolors.py'

表示例

Windows 10 PowerShellでの表示例です。これでいつでも開発中に色の一覧を確認できますね!!!

image.png

また、カラーバーの表示にも対応しています。いやー便利ですね。

image.png

また、私のPull Requestでは検索機能を実装しました。 もしマージされれば検索機能が追加されます! マージされました!

いつの間にか補色検索が実装されてました。

スクリーンショット 2022-04-20 171107.png

上の例では名前で検索しましたが、mplcolors -c "12ab84"のように#を除いたカラーコードでも検索できるようです。

まとめ

これを導入すれば、色の検索に時間を割く必要がなくなりますね!
是非導入を検討してみてください。

参考

57
49
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
57
49