1. ホーム
  2. python

[解決済み] プロットラインの色を青から黒に変更するには?

2022-03-01 23:19:52

質問

データセットを生成し、pythonでプロットラインに色をつけようとしたときに、行き詰ってしまいました。

例えば、ここで線の色を青から黒に変えたいのですが。

これは私が持っているもので、pandasから取得したデータのセットを返します。

ax=plt.gca()
ax.set_axis_bgcolor('#cccccc')
returns.plot()

<イグ

解決方法は?

matplotlib で線の色を設定する通常の方法は、plot コマンドでそれを指定することです。これは、データの後に文字列で指定することもできます。 "r-" を使えば赤い線が引けますし、明示的に color 引数で指定します。

import matplotlib.pyplot as plt

plt.plot([1,2,3], [2,3,1], "r-") # red line
plt.plot([1,2,3], [5,5,3], color="blue") # blue line

plt.show()

以下もご参照ください。 プロットコマンドのドキュメント .

すでに特定の色の線がある場合、それを変更するために lines2D.set_color() メソッドを使用します。

line, = plt.plot([1,2,3], [4,5,3], color="blue")
line.set_color("black")


pandasのプロットで線の色を設定するのも、プロットを作成する時点で行うのがベストです。

import matplotlib.pyplot as plt
import pandas as pd

df = pd.DataFrame({ "x" : [1,2,3,5], "y" : [3,5,2,6]})
df.plot("x", "y", color="r") #plot red line

plt.show()

この色を後で変更したい場合は、次のようにします。

plt.gca().get_lines()[0].set_color("black")

これは、現在のアクティブな軸の最初の(場合によっては唯一の)行を取得します。
プロット内にもっと多くの軸がある場合、それらをループさせることができます。

for ax in plt.gcf().axes:
    ax.get_lines()[0].set_color("black")

また、行数が多い場合はループさせることも可能です。