Графики в полярных координатах питон

Русские Блоги

Подробное объяснение метода полярных координат matplotlib

# coding=utf-8 import numpy as np import matplotlib.pyplot as plt ''' Полярные координаты делятся на: полярный диаметр и угол. ''' r = np.arange(1, 6, 1) theta = [i*np.pi/2 for i in range(5)] ax = plt.subplot(111,projection='polar') #projection = 'polar' Укажите как полярные координаты ax.plot(theta, r, linewidth=3,color='red') #Первый параметр - угол, второй параметр - полярный диаметр. ax.grid(True) #Есть сетка plt.show()

# coding=utf-8 import numpy as np import matplotlib.pyplot as plt ''' Полярные координаты делятся на: полярный диаметр и угол. ''' r = [6 for i in range(9)] theta = [i*np.pi/4 for i in range(9)] ax = plt.subplot(111,projection='polar') #projection = 'polar' Укажите как полярные координаты ax.plot(theta, r, linewidth=3,color='red') #Первый параметр - угол, второй параметр - полярный диаметр. ax.grid(True) #Есть сетка plt.show()

# coding=utf-8 import numpy as np import matplotlib.pyplot as plt ''' Полярные координаты делятся на: полярный диаметр и угол. ''' r = np.arange(0,1,0.01) theta = 2*2*np.pi*r ax = plt.subplot(111,projection='polar') #projection = 'polar' Укажите как полярные координаты ax.plot(theta, r, linewidth=3,color='red') #Первый параметр - угол, второй параметр - полярный диаметр. ax.grid(True) #Есть сетка plt.show()

1. Полярные координаты

image

Возьмите фиксированную точку O на плоскости, называемую полюсом, и нарисуйте луч Ox, называемый полярной осью, а затем выберите единицу длины и положительное направление угла (обычно против часовой стрелки). Для любой точки M на плоскости используйте ρ для представления длины отрезка OM (иногда также используйте r), θ представляет угол от Ox до OM, ρ — полярный диаметр точки M, а θ — полярный угол точки M, которая представляет собой упорядоченную пару. (ρ, θ) называется полярной координатой точки M, а установленная таким образом система координат называется полярной системой координат. При нормальных обстоятельствах единица полярных координат M равна 1 (единица длины), а единица координат полярного угла — рад (или °).

Читайте также:  Сервера css как добавить

Во-вторых, matplotlib рисует полярные координаты

1. Создайте полярный график.

Подбиблиотека pyplot библиотеки matplotlib предоставляет метод для рисования графиков полярных координат. Когда subplot () вызывается для создания подграфа, подграф полярных координат может быть создан, установив projection = ‘polar’, а затем plot () может быть вызван в подграфе полярных координат На чертеже.
Затем создайте подграф полярных координат и подграф прямоугольных координат для сравнения.

import matplotlib.pyplot as plt ax1 = plt.subplot(121, projection='polar') ax2 = plt.subplot(122) ax1.plot(theta,theta/6,'--',lw=2) ax2.plot(theta,theta/6,'--',lw=2) plt.show()

2. Настройки карты полярных координат.

dir() Команда может получить все атрибуты метода объекта, сравнивая ax1 против ax2 Вы можете узнать, какие методы настройки доступны для полярных координат.

>>> print(sorted(set(dir(ax1))-set(dir(ax2)))) ['InvertedPolarTransform', 'PolarAffine', 'PolarTransform', 'RadialLocator', 'ThetaFormatter', '_default_rlabel_position', '_default_theta_direction', '_default_theta_offset', '_direction', '_r_label_position', '_theta_label1_position', '_theta_label2_position', '_theta_offset', '_xaxis_text1_transform', '_xaxis_text2_transform', '_yaxis_text_transform', 'get_rlabel_position', 'get_rmax', 'get_rmin', 'get_theta_direction', 'get_theta_offset', 'resolution', 'set_rgrids', 'set_rlabel_position', 'set_rlim', 'set_rmax', 'set_rmin', 'set_rscale', 'set_rticks', 'set_theta_direction', 'set_theta_offset', 'set_theta_zero_location', 'set_thetagrids', 'transProjection', 'transProjectionAffine', 'transPureProjection']

2.1 Положительное направление полярных координат

set_theta_direction Метод используется для установки положительного направления полярных координат.

  • когда set_theta_direction Когда значение параметра равно 1, «против часовой стрелки» или «против часовой стрелки», положительное направление — против часовой стрелки;
  • когда set_theta_direction Когда значение параметра равно -1 или «по часовой стрелке», положительное направление — по часовой стрелке;
  • По умолчанию положительное направление — против часовой стрелки.
import matplotlib.pyplot as plt import numpy as np theta=np.arange(0,2*np.pi,0.02) ax1= plt.subplot(121, projection='polar') ax2= plt.subplot(122, projection='polar') ax2.set_theta_direction(-1) ax1.plot(theta,theta/6,'--',lw=2) ax2.plot(theta,theta/6,'--',lw=2) plt.show()

image

2.2 Положение 0 ° полярной координаты

set_theta_zero_location Метод, используемый для установки полярной координаты 0 °.

  • 0 ° можно установить в восьми положениях, а именно: N, NW, W, SW, S, SE, E, NE.
  • когда set_theta_zero_location Когда значения параметров: «N», «NW», «W», «SW», «S», «SE», «E», «NE», положения, соответствующие 0 °, являются азимутами N, NW, W. , ЮЗ, Ю, ЮВ, В, СВ;
  • По умолчанию 0 ° находится в положении E.
import matplotlib.pyplot as plt import numpy as np theta=np.arange(0,2*np.pi,0.02) ax1= plt.subplot(121, projection='polar') ax2= plt.subplot(122, projection='polar') ax2.set_theta_zero_location('N') ax1.plot(theta,theta/6,'--',lw=2) ax2.plot(theta,theta/6,'--',lw=2) plt.show()

image

2.3 Отображение линии сетки углов полярных координат

set_thetagrids Метод используется для установки отображения линии сетки угла полярных координат.

  • Параметр — это список значений углов отображаемых линий сетки.
  • Линии сетки отображения по умолчанию: 0 °, 45 °, 90 °, 135 °, 180 °, 225 °, 270 °, 315 °
import matplotlib.pyplot as plt import numpy as np theta=np.arange(0,2*np.pi,0.02) ax1= plt.subplot(121, projection='polar') ax2= plt.subplot(122, projection='polar') ax2.set_thetagrids(np.arange(0.0, 360.0, 30.0)) ax1.plot(theta,theta/6,'--',lw=2) ax2.plot(theta,theta/6,'--',lw=2) plt.show()

image

2.4 Отклонение угла полярной координаты

set_theta_offset Метод, используемый для установки отклонения угла

import matplotlib.pyplot as plt import numpy as np theta=np.arange(0,2*np.pi,0.02) ax1= plt.subplot(121, projection='polar') ax2= plt.subplot(122, projection='polar') ax2.set_theta_offset(np.pi) ax1.plot(theta,theta/6,'--',lw=2) ax2.plot(theta,theta/6,'--',lw=2) plt.show()

image

2.5 Отображение линии сетки полярных координат полярного диаметра

set_rgrids Метод, используемый для настройки отображения линии сетки полярного диаметра

  • Значение параметра представляет собой список крайних значений диаметра отображаемых линий сетки, минимальное значение не может быть меньше или равно 0.
import matplotlib.pyplot as plt import numpy as np theta=np.arange(0,2*np.pi,0.02) ax1= plt.subplot(121, projection='polar') ax2= plt.subplot(122, projection='polar') ax2.set_rgrids(np.arange(0.2,1.0,0.4)) ax1.plot(theta,theta/6,'--',lw=2) ax2.plot(theta,theta/6,'--',lw=2) plt.show()

image

2.6 Положение метки полярного диаметра в полярных координатах

set_rlabel_position Метод, используемый для установки положения отображения метки полярного диаметра

import matplotlib.pyplot as plt import numpy as np theta=np.arange(0,2*np.pi,0.02) ax1= plt.subplot(121, projection='polar') ax2= plt.subplot(122, projection='polar') ax2.set_rlabel_position('90') ax1.plot(theta,theta/6,'--',lw=2) ax2.plot(theta,theta/6,'--',lw=2) plt.show()

image

2.7 Диапазон полярных диаметров

set_rlim Метод используется для установки отображаемого диапазона полярного диаметра.

import matplotlib.pyplot as plt import numpy as np theta=np.arange(0,2*np.pi,0.02) ax1= plt.subplot(121, projection='polar') ax2= plt.subplot(122, projection='polar') ax2.set_rlim(0.6,1.2) ax1.plot(theta,theta/6,'--',lw=2) ax2.plot(theta,theta/6,'--',lw=2) plt.show()

image

2.8 Максимальный полярный диаметр

set_rmax Метод, используемый для установки максимального отображаемого полярного диаметра

import matplotlib.pyplot as plt import numpy as np theta=np.arange(0,2*np.pi,0.02) ax1= plt.subplot(121, projection='polar') ax2= plt.subplot(122, projection='polar') ax1.plot(theta,theta/6,'--',lw=2) ax2.plot(theta,theta/6,'--',lw=2) ax2.set_rmax(0.6) plt.show()

image

2.9 Минимальный полярный диаметр

set_rmin Метод используется для установки отображаемого минимального полярного диаметра.

import matplotlib.pyplot as plt import numpy as np theta=np.arange(0,2*np.pi,0.02) ax1= plt.subplot(121, projection='polar') ax2= plt.subplot(122, projection='polar') ax1.plot(theta,theta/6,'--',lw=2) ax2.plot(theta,theta/6,'--',lw=2) ax2.set_rmin(0.6) plt.show()

image

2.10 Логарифмическая координата полярного диаметра

set_rscale Метод, используемый для установки логарифмической координаты полярного диаметра

  • Значения параметров:’linear ‘,’ log ‘,’ symlog ‘.
  • Значение по умолчанию — «линейный».
  • Этот способ действителен только после рисования изображения
import matplotlib.pyplot as plt import numpy as np theta=np.arange(0,2*np.pi,0.02) ax1= plt.subplot(121, projection='polar') ax2= plt.subplot(122, projection='polar') ax1.plot(theta,theta/6,'--',lw=2) ax2.plot(theta,theta/6,'--',lw=2) ax2.set_rlim(math.pow(10,-1),math.pow(10,0)) ax1.set_rscale('linear') ax2.set_rscale('symlog') plt.show()

image

2.11 Диапазон отображения линии сетки полярных координат полярного диаметра

set_rticks Метод используется для установки диапазона отображения полярных линий сетки.

import matplotlib.pyplot as plt import numpy as np theta=np.arange(0,2*np.pi,0.02) ax1= plt.subplot(121, projection='polar') ax2= plt.subplot(122, projection='polar') ax2.set_rticks(np.arange(0.1, 0.9, 0.2)) ax1.plot(theta,theta/6,'--',lw=2) ax2.plot(theta,theta/6,'--',lw=2) plt.show()

Источник

Scatter plot on polar axis#

Size increases radially in this example and color increases with angle (just to verify the symbols are being scattered correctly).

import numpy as np import matplotlib.pyplot as plt # Fixing random state for reproducibility np.random.seed(19680801) # Compute areas and colors N = 150 r = 2 * np.random.rand(N) theta = 2 * np.pi * np.random.rand(N) area = 200 * r**2 colors = theta fig = plt.figure() ax = fig.add_subplot(projection='polar') c = ax.scatter(theta, r, c=colors, s=area, cmap='hsv', alpha=0.75) 

polar scatter

Scatter plot on polar axis, with offset origin#

The main difference with the previous plot is the configuration of the origin radius, producing an annulus. Additionally, the theta zero location is set to rotate the plot.

fig = plt.figure() ax = fig.add_subplot(projection='polar') c = ax.scatter(theta, r, c=colors, s=area, cmap='hsv', alpha=0.75) ax.set_rorigin(-2.5) ax.set_theta_zero_location('W', offset=10) 

polar scatter

Scatter plot on polar axis confined to a sector#

The main difference with the previous plots is the configuration of the theta start and end limits, producing a sector instead of a full circle.

fig = plt.figure() ax = fig.add_subplot(projection='polar') c = ax.scatter(theta, r, c=colors, s=area, cmap='hsv', alpha=0.75) ax.set_thetamin(45) ax.set_thetamax(135) plt.show() 

polar scatter

The use of the following functions, methods, classes and modules is shown in this example:

Total running time of the script: ( 0 minutes 1.794 seconds)

Источник

Оцените статью