カスタムカラーサイクラーをテキストファイルに定義し、それをplt.style.context()
経由で呼び出しています。私が定義したサイクルは12色です。プロットに注釈を付けるときに、カラー文字列を使用してカスタムサイクラーの色にアクセスしようとすると'C0'
から'C9'
までは'C10'
がスローされますValueError: Invalid RGBA argument: 'C10'
です。すべての12の値は間違いなくそこにあります。カスタムprop_cycleの色にアクセスするには?
axes.prop_cycle : cycler('color', ['332288', 'CC6677', 'DDCC77', '117733', '88CCEE', 'AA4499', '44AA99', '999933', '882255', '661100', '6699CC', 'AA4466'])
テストスクリプト:スタイルファイルstyle.yaml
の内容
import numpy as np
import matplotlib.pyplot as plt
data = np.c_[np.zeros(13), np.arange(13)].T
labels = list('abcdefghijklm')
with plt.style.context('style.yaml'):
# just to prove that the colors are loading correctly:
cycle = plt.rcParams['axes.prop_cycle'].by_key()['color']
print('{} colors: {}'.format(len(cycle), cycle))
# now the actual plotting:
fig, ax = plt.subplots()
ax.plot(data)
for ix in range(data.shape[1]):
ax.text(x=1, y=data[1, ix], s=labels[ix], color='C{}'.format(ix))
結果行は私のカスタムサイクラーの色に従うということですが、テキスト(10枚のラベルの後にプロットし、それを停止ValueError
にもかかわらず)ラベルはmatplotlibのデフォルトサイクラーの色を使用します(スクリーンショット参照)。外部のYAMLファイルで定義されたカスタムサイクラーの色を使ってテキストを表示させるにはどうすればよいですか?
ありがとう;私は 'Cn'表記のドキュメントについて(間違った場所で)(http://matplotlib.org/cycler/)探していました。 – drammock