Я рисую график напряжения за раз. Для значений напряжения я хочу, чтобы значения оценивались с помощью функции «масштабирования», которая преобразует значения из вольт в киловольты, если самый большой элемент превышает 1000 вольт ( 11000 вольт в 11 киловольт ).
Эта функция должна возвращать 2 отдельных выхода; один для (нового) значений напряжения и один для блока . Значения вводятся в значения y по оси значений графика, а единица задается в строке с маркировкой этой оси. Например:
import numpy as np
time = np.array([0, 1, 2, 3])
system_voltage1 = np.array([110, 120, 130, 150])
system_voltage2 = np.array([11000, 12000, 13000, 15000])
scaling_function(input)
if np.amax(input) < 1000:
output = input/1
Voltage_label = 'Voltage in Volts'
if np.amax(input) > 1000:
output = input/1000
Voltage_label = 'Voltage in KILOVolts'
return(output, Voltage_label)
fig14 = plt.figure(figsize=(16,9))
ax1 = fig14.add_subplot(111)
l1, = ax1.plot(time, scaling_function(system_voltage), color='r')
ax1.set_xlabel("time in second", color='k')
ax1.set_ylabel(Voltage_label, color='k')
Теперь у меня возникли проблемы с правильным вызовом этой функции. Мне нужна функция только для получения output
для scaling_function(system_voltage)
и получения Voltage_label
в ax1.set_ylabel(Voltage_label, color='k')
. Теперь:
A) Моя проблема : я не знаю, как написать код, поэтому только первый вывод получен и использован для scaling_function(system_voltage)
и второй элемент для линии маркировки.
B) Что-то, что я пробовал, но не сработало: Voltage_label
не распознает значение Voltage_label из scaling_function, так как оно находится во внешнем l oop чем функция. Я имею в виду, я не могу получить доступ к метке Voltage_Label, поскольку его значение не глобально не назначено.
Может ли кто-нибудь помочь мне с этим?