Pynote

Python、機械学習、画像処理について

matplotlib - 極座標系でプロットする方法について

極座標系に設定する。

projection='polar' または polar=True で設定する。

theta = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
r = [0.11, 0.55, 0.86, 0.45, 0.34, 0.55, 0.78, 0.21, 0.97, 0.25]

fig = plt.figure(figsize=(6, 6))
ax = fig.add_subplot(111, projection='polar')
ax.plot(theta, r, 'o')

plt.show()
theta = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
r = [0.11, 0.55, 0.86, 0.45, 0.34, 0.55, 0.78, 0.21, 0.97, 0.25]

fig = plt.figure(figsize=(6, 6))
ax = fig.add_subplot(111, polar=True)
ax.plot(theta, r, 'o')

plt.show()


偏角の目盛りを設定する。

theta = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
r = [0.11, 0.55, 0.86, 0.45, 0.34, 0.55, 0.78, 0.21, 0.97, 0.25]

fig = plt.figure(figsize=(6, 6))
ax = fig.add_subplot(111, projection='polar')
ax.plot(theta, r, 'o')
ax.set_thetagrids(np.linspace(0, 360, 20), fmt='%.2f')

plt.show()


偏角の目盛りのラベルを設定する。

theta = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
r = [0.11, 0.55, 0.86, 0.45, 0.34, 0.55, 0.78, 0.21, 0.97, 0.25]

labels = ['E', 'ENE', 'NE', 'NNE', 'N', 'NNW', 'NW', 'WNW',
          'W', 'WSW', 'SW', 'SSW', 'S', 'SSE', 'SE', 'ESE']
angles = np.linspace(0, 360, len(labels), endpoint=False)

fig = plt.figure(figsize=(6, 6), )
ax = fig.add_subplot(111, projection='polar')
ax.plot(theta, r, 'o')
ax.set_thetagrids(angles, labels=labels, fontsize=16)

plt.show()


動径の目盛りを設定する。

theta = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
r = [0.11, 0.55, 0.86, 0.45, 0.34, 0.55, 0.78, 0.21, 0.97, 0.25]

fig = plt.figure(figsize=(6, 6))
ax = fig.add_subplot(111, projection='polar')
ax.plot(theta, r, 'o')
ax.set_rgrids(np.linspace(0, 1, 5), fmt='%.2f')

plt.show()


fig = plt.figure(figsize=(6, 6), )
ax = fig.add_subplot(111, projection='polar')
ax.plot(theta, r, 'o')
ax.set_rgrids(np.linspace(0, 1, 5), labels=['A', 'B', 'C', 'D', 'E'])

plt.show()


偏角の起点となる角度を設定する。

fig = plt.figure(figsize=(6, 6), )
ax = fig.add_subplot(111, projection='polar')
ax.plot(theta, r, 'o')
ax.set_rgrids(np.linspace(0, 1, 5), angle=0)

plt.show()