web-dev-qa-db-ja.com

matplotlibのプロットの軸、目盛り、ラベルの色を変更する

MatplotlibとPyQtを使用して行ったプロットの目盛りと値ラベルだけでなく、軸の色も変更したいと思います。

何か案は?

73
Richard Durr

簡単な例(重複する可能性のある質問よりも少し簡潔な方法を使用):

import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111)

ax.plot(range(10))
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')

ax.spines['bottom'].set_color('red')
ax.spines['top'].set_color('red')
ax.xaxis.label.set_color('red')
ax.tick_params(axis='x', colors='red')

plt.show()

alt text

121
Joe Kington

修正したい複数の図またはサブプロットがある場合、それぞれを個別に変更する代わりに、 matplotlib context manager を使用して色を変更すると便利です。コンテキストマネージャーを使用すると、インデントされた直後のコードのrcパラメーターのみを一時的に変更できますが、グローバルrcパラメーターには影響しません。

このスニペットは2つの図を生成します。最初の図は、軸、目盛り、および目盛りの色が変更されており、2番目の図はデフォルトのrcパラメーターを持っています。

import matplotlib.pyplot as plt
with plt.rc_context({'axes.edgecolor':'orange', 'xtick.color':'red', 'ytick.color':'green', 'figure.facecolor':'white'}):
    # Temporary rc parameters in effect
    fig, (ax1, ax2) = plt.subplots(1,2)
    ax1.plot(range(10))
    ax2.plot(range(10))
# Back to default rc parameters
fig, ax = plt.subplots()
ax.plot(range(10))

enter image description here

enter image description here

plt.rcParamsと入力して、使用可能なすべてのrcパラメーターを表示し、リスト内包表記を使用してキーワードを検索できます。

# Search for all parameters containing the Word 'color'
[(param, value) for param, value in plt.rcParams.items() if 'color' in param]
25
joelostblom