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= を指定することで、マーカーを表示しています。
折れ線グラフの作成方法については、下記の記事で紹介しています。
本記事のサンプルコードは、「ax.~」のオブジェクト指向のグラフ描画方法で記載しています。
「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')
棒グラフを作成しています。
棒グラフの作成方法については、下記の記事で紹介しています。
棒グラフの棒の太さを変更
棒グラフの、棒の太さを変更する方法を紹介します。
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の使い方については、下記の記事で紹介しています。
スポンサーリンク