Использование 2 разных выходов «возврата» функции в отдельных элементах графика - PullRequest
0 голосов
/ 17 марта 2020

Я рисую график напряжения за раз. Для значений напряжения я хочу, чтобы значения оценивались с помощью функции «масштабирования», которая преобразует значения из вольт в киловольты, если самый большой элемент превышает 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, поскольку его значение не глобально не назначено.

Может ли кто-нибудь помочь мне с этим?

1 Ответ

0 голосов
/ 17 марта 2020
y,l = scaling_function(system_voltage)
l1, = ax1.plot(time, y, color='r')
ax1.set_xlabel("time in second", color='k')
ax1.set_ylabel(l, color='k')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...