matplotlib ライブラリ

【matplotlib】グラフの線幅・太さ(linewidth)の変更方法

pythonのグラフ描画ライブラリである「matplotlib」のグラフの線幅(linewidth)を変更する方法について紹介します。

グラフの線だけでなく、グラフ描画領域やグラフの軸の線幅を変更する方法についても紹介します

本記事では、下記の内容を紹介しています。

この記事で分かること

  • グラフの線幅(太さ)を変更する方法
  • 棒グラフの線幅(太さ)を変更する方法
  • Figure領域・軸の枠線の線幅を変更
  • 【補足】線幅のデフォルトをrcParamsで変更

スポンサーリンク

matplotlibでグラフの線幅(linewidth)を変更する方法

グラフの線幅を変更する方法を紹介します。

ax.plot( )の引数として、 linewidth= を指定することで、グラフの線の太さを変更することができます。

初めに、線幅を変更するのサンプルコードを載せておきます。

### 線幅変更前の折れ線グラフ
import matplotlib.pyplot as plt
import numpy as np

x = list(range(1,6))
y = np.random.rand(5)

fig, ax = plt.subplots()

ax.plot(x, y, marker='o')

ax.set_title('Title')

ax.set_xlabel('X-label')
ax.set_ylabel('Y-label')

plt.show()

コードを実行すると、こちらのグラフが表示されます。

実行結果

> ax.plot(x, y, marker='o')

折れ線グラフを描画しています。
引数として、marker= を指定することで、マーカーを表示しています。

折れ線グラフの作成方法については、下記の記事で紹介しています。

matplotlibで折れ線グラフを作成する方法

本記事のサンプルコードは、「ax.~」のオブジェクト指向のグラフ描画方法で記載しています。
「plt.~」と「ax.~」のグラフ描画方法の違いについては、下記の記事で紹介していますので併せて参考にしてみてください。

matplotlibのpyplot(plt)とaxの違い

次に、グラフの線幅を変更するサンプルコードを紹介します。

### 折れ線グラフの線の太さを変更
import matplotlib.pyplot as plt
import numpy as np

x = list(range(1,6))
y = np.random.rand(5)

fig, ax = plt.subplots()

ax.plot(x, y, marker='o', linewidth=5)

ax.set_title('Title')

ax.set_xlabel('X-label')
ax.set_ylabel('Y-label')

plt.show()

コードを実行すると、こちらのグラフが表示されます。

実行結果

> ax.plot(x, y, marker='o', linewidth=5)

引数として linewidth= を指定し、線の太さを変更しています。

スポンサーリンク

matplotlibの棒グラフの線幅(linewidth)を変更する方法

次に、棒グラフの線幅を変更する方法を紹介します。

棒グラフについては、棒そのものの太さを変更する方法と、棒の枠線の線幅を変更する方法の、2つの方法を紹介します。

はじめに、線幅を変更するのサンプルコードを紹介します。

### 線幅変更前の棒グラフ
import numpy as np
import matplotlib.pyplot as plt
 
x = np.array([1, 2, 3, 4, 5])
y = np.array([10, 20, 30, 40, 50])

fig = plt.figure(figsize = [6,4])
ax = fig.add_subplot(1, 1, 1)

ax.set_xlabel('X-label')
ax.set_ylabel('Y-label')

ax.bar(x, y, label='bar')

ax.legend()

plt.show()

コードを実行すると、こちらのグラフが表示されます。

実行結果

> ax.bar(x, y, label='bar')

棒グラフを作成しています。

棒グラフの作成方法については、下記の記事で紹介しています。

matplotlibで棒グラフを作成する方法

棒グラフの棒の太さを変更

棒グラフの、棒の太さを変更する方法を紹介します。

ax.bar( ) の引数として、width= を指定することで、棒の太さを変更できます。

以下、棒グラフの棒の太さを変更するサンプルコードです。

### 棒グラフの線の太さを変更
import numpy as np
import matplotlib.pyplot as plt
 
x = np.array([1, 2, 3, 4, 5])
y = np.array([10, 20, 30, 40, 50])

fig = plt.figure(figsize = [6,4])
ax = fig.add_subplot(1, 1, 1)

ax.set_xlabel('X-label')
ax.set_ylabel('Y-label')

ax.bar(x, y, label='bar', width=0.1)

ax.legend()

plt.show()

コードを実行すると、こちらのグラフが表示されます。

実行結果

> ax.bar(x, y, label='bar', width=0.1)

引数 width= を指定することで、棒の幅を変更しています。

棒グラフの棒の枠線の線幅を変更

棒グラフの、棒の枠線の線幅を変更する方法を紹介します。

ax.bar( ) の引数として、linewidth= を指定することで、棒の枠線の線幅を変更できます。
ただし、枠線に色がついていないと、線幅を太くしても反映されないので、併せてedgecolorで枠線の色を指定します。

以下、棒グラフの棒の枠線の線幅を変更するサンプルコードです。

### 棒グラフの棒の枠線の線幅を変更
import numpy as np
import matplotlib.pyplot as plt
 
x = np.array([1, 2, 3, 4, 5])
y = np.array([10, 20, 30, 40, 50])

fig = plt.figure(figsize = [6,4])
ax = fig.add_subplot(1, 1, 1)

ax.set_xlabel('X-label')
ax.set_ylabel('Y-label')

ax.bar(x, y, label='bar', edgecolor='Black', linewidth=3)

ax.legend()

plt.show()

コードを実行すると、こちらのグラフが表示されます。

実行結果

> ax.bar(x, y, label='bar', edgecolor='Black', linewidth=3)

引数 linewidth= で、枠線の線幅を指定しています。
引数 edgecolor= で、枠線の色を指定しています。

スポンサーリンク

matplotlibでFigure領域・軸の枠線の線幅を変更

Figure領域の枠線の線幅軸の枠線の線幅変更する方法を紹介します。

はじめに、それぞれの枠線の線幅を変更するのサンプルコードを紹介します。

### 変更前
import matplotlib.pyplot as plt

fig = plt.figure(figsize = [6,4], facecolor='lightblue')
ax = fig.add_subplot(1, 1, 1)

ax.plot(x, y, marker='o')

ax.set_title('Title')

ax.set_xlabel('X-label')
ax.set_ylabel('Y-label')

plt.show()

コードを実行すると、こちらのグラフが表示されます。

実行結果

Figure領域の枠線の線幅を変更

Figure領域の枠線の線幅を変更する方法を紹介します。

Figureオブジェクトを生成する、plt.figure( ) の引数として linewidth= を指定すると枠線の線幅を変更できます。
ただし、枠線に色がついていないと、線幅を太くしても反映されないので、併せてedgecolorで枠線の色を指定します。

以下、Figure領域の枠線の線幅を変更するサンプルコードです。

### Figure領域の枠線の線幅を変更
import matplotlib.pyplot as plt

x = list(range(1,6))
y = np.random.rand(5)

fig = plt.figure(figsize = [6,4], facecolor='lightblue',edgecolor='black', linewidth=5)
ax = fig.add_subplot(1, 1, 1)

ax.plot(x, y, marker='o')

ax.set_title('Title')

ax.set_xlabel('X-label')
ax.set_ylabel('Y-label')

plt.show()

コードを実行すると、こちらのグラフが表示されます。

実行結果

> fig = plt.figure(figsize = [6,4], facecolor='lightblue',edgecolor='black', linewidth=5)

引数 linewidth= で、枠線の線幅を指定しています。
引数 edgecolor= で、枠線の色を指定しています。

軸の線幅を変更

グラフの軸の線幅を変更する方法を紹介します。

以下、軸の線幅を変更するサンプルコードです。

### 軸の線幅を変更
import matplotlib.pyplot as plt
import numpy as np

x = list(range(1,6))
y = np.random.rand(5)

fig = plt.figure(figsize = [6,4], facecolor='lightblue',edgecolor='black', linewidth=5)
ax = fig.add_subplot(1, 1, 1)

ax.spines['top'].set_linewidth(3)
ax.spines['bottom'].set_linewidth(3)
ax.spines['left'].set_linewidth(3)
ax.spines['right'].set_linewidth(3)

ax.plot(x, y, marker='o')

ax.set_title('Title')

ax.set_xlabel('X-label')
ax.set_ylabel('Y-label')

plt.show()

コードを実行すると、こちらのグラフが表示されます。

実行結果

> ax.spines['top'].set_linewidth(3)
> ax.spines['bottom'].set_linewidth(3)
> ax.spines['left'].set_linewidth(3)
> ax.spines['right'].set_linewidth(3)

ax.spines[ ] に、軸の方向を指定し、.set_linewidth( ) で、軸の線幅を変更できます。

スポンサーリンク

【補足】線幅のデフォルトをrcParamsで変更

グラフの線幅のデフォルト値を、rcParamsで変更する方法を紹介します。

rcParamsには、matplotlibのデフォルト設定が格納がされています

個別のグラフのラベルのフォントサイズや色などの要素を変更する場合は関数の引数を指定することで変更できますが、
rcParamsの設定値を変えることで、プログラム全体のグラフに対して設定を変更することができます。

以下、グラフの線幅のデフォルト値をrcParamsで変更するサンプルコードです。

### 線幅のデフォルトをrcParamsで変更
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['lines.linewidth'] = 3

x = list(range(1,6))
y = np.random.rand(5)

fig, ax = plt.subplots()

ax.plot(x, y, marker='o')

ax.set_title('Title')

ax.set_xlabel('X-label')
ax.set_ylabel('Y-label')

plt.show()

コード実行後、こちらのグラフが表示されます。

実行結果

> plt.rcParams['lines.linewidth'] = 3

線幅のデフォルト値を変更しています。
なお、line.linewidth のデフォルト値は、1.5 です。

rcParamsの使い方については、下記の記事で紹介しています。

matplotlibのrcParamsの使い方

スポンサーリンク

-matplotlib, ライブラリ
-,