
Добавил:
Molochnik
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
import numpy as np
import matplotlib.pyplot as plt
# Данные для зеленого светодиода
theta_deg_full = np.array([0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180])
I_microA_full = np.array([3.3, 4.5, 5.2, 4.8, 6.1, 6.2, 23.3, 44, 68, 75.5, 68, 44, 23.3, 6.2, 6.1, 4.8, 5.2, 4.5, 3.3])
# Преобразуем углы в радианы для полярной системы
theta_rad_full = np.deg2rad(theta_deg_full)
# Половинное значение тока
I_max = max(I_microA_full)
I_half = I_max * 0.5
# Найдем индексы, при которых ток больше или равен половине максимального значения
above_half_indices = np.where(I_microA_full >= I_half)[0]
# Определяем диапазон для заливки
theta_half_min_index = above_half_indices[0]
theta_half_max_index = above_half_indices[-1]
# Углы для половинного уровня в радианах
theta_half_range = theta_rad_full[theta_half_min_index:theta_half_max_index+1]
# Построение полярного графика
plt.figure(figsize=(8, 8))
ax = plt.subplot(111, polar=True)
ax.plot(theta_rad_full, I_microA_full, marker='o', linestyle='-', color='green', label='Белый светодиод')
# Заливка области между theta_half_min и theta_half_max, радиус на уровне I_half
ax.fill_between(theta_rad_full, 0, I_half, where=(theta_rad_full >= theta_rad_full[theta_half_min_index]) & (theta_rad_full <= theta_rad_full[theta_half_max_index]), color='red', alpha=0.5, label=r'$\theta_{0.5}$')
# Настройки графика
ax.set_title("Диаграмма направленности излучения для белого светодиода", fontsize=14)
ax.set_theta_direction(-1) # Обратное направление для соответствия привычным графикам
ax.set_theta_offset(np.pi / 2) # Начало отсчета с 90 градусов
ax.grid(True)
# Показ легенды с указанием ширины диаграммы направленности
plt.legend()
plt.show()
import matplotlib.pyplot as plt
# Данные для зеленого светодиода
theta_deg_full = np.array([0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180])
I_microA_full = np.array([3.3, 4.5, 5.2, 4.8, 6.1, 6.2, 23.3, 44, 68, 75.5, 68, 44, 23.3, 6.2, 6.1, 4.8, 5.2, 4.5, 3.3])
# Преобразуем углы в радианы для полярной системы
theta_rad_full = np.deg2rad(theta_deg_full)
# Половинное значение тока
I_max = max(I_microA_full)
I_half = I_max * 0.5
# Найдем индексы, при которых ток больше или равен половине максимального значения
above_half_indices = np.where(I_microA_full >= I_half)[0]
# Определяем диапазон для заливки
theta_half_min_index = above_half_indices[0]
theta_half_max_index = above_half_indices[-1]
# Углы для половинного уровня в радианах
theta_half_range = theta_rad_full[theta_half_min_index:theta_half_max_index+1]
# Построение полярного графика
plt.figure(figsize=(8, 8))
ax = plt.subplot(111, polar=True)
ax.plot(theta_rad_full, I_microA_full, marker='o', linestyle='-', color='green', label='Белый светодиод')
# Заливка области между theta_half_min и theta_half_max, радиус на уровне I_half
ax.fill_between(theta_rad_full, 0, I_half, where=(theta_rad_full >= theta_rad_full[theta_half_min_index]) & (theta_rad_full <= theta_rad_full[theta_half_max_index]), color='red', alpha=0.5, label=r'$\theta_{0.5}$')
# Настройки графика
ax.set_title("Диаграмма направленности излучения для белого светодиода", fontsize=14)
ax.set_theta_direction(-1) # Обратное направление для соответствия привычным графикам
ax.set_theta_offset(np.pi / 2) # Начало отсчета с 90 градусов
ax.grid(True)
# Показ легенды с указанием ширины диаграммы направленности
plt.legend()
plt.show()