#python #matplotlib
#python #matplotlib
Вопрос:
Прежде чем я задам этот вопрос, я уже некоторое время безуспешно искал в Интернете. Многим экспертам это, безусловно, кажется довольно простым. Пожалуйста, потерпите меня.
У меня есть график, созданный matplotlib, и он возвращается как plf.Рисунок. Смотрите Следующее:
def myplotcode():
x = np.linspace(0, 2*np.pi)
y = np.sin(x)
print("x in external function", x)
y2 = np.cos(x)
fig = plf.Figure()
ax = fig.add_subplot(111)
ax.plot(x, y, 'bo', x, y2,'gs')
ax.set_ylabel("Some function")
return fig, ax
То, что я хочу сделать в функции, которая вызывает эту функцию, — это иметь возможность получать все эти значения x из возвращаемых ax или fig. Ну, я понимаю, что одно простое решение — это просто вернуть массив x тоже. Тем не менее, я стараюсь, чтобы количество возвратов было как можно меньше.
Итак, мой вопрос: могу ли я получить этот массив по оси x из fig или ax?
Заранее большое вам спасибо.
Ответ №1:
Вы можете сделать:
l = ax.axes.lines[0] # If you have more curves, just change the index
x, y = l.get_data()
Это даст вам два массива с x
y
данными и
Комментарии:
1. Спасибо, Дэвид. Это работает. Я искал документ осей и не наткнулся на get_data().
2. Да, иногда полезно использовать
IPython
для получения большинства свойств или методов в классе с помощьюtab
. В этом случае, если вы это сделаетеl.
, иtab
вы увидите все свойства кривой 🙂3. Я серьезно отнесусь к вашему совету. Большое спасибо.