Легко идентифицировать видимые данные графика matplotlib? [Дубликат]

Добавьте полный путь к файлу jar в CLASSPATH. В linux используйте: export CLASSPATH=".:/full/path/to/file.jar:$CLASSPATH". Другой способ работы (без редактирования CLASSPATH) разворачивал банку в текущей папке проекта.

Для меня не работали:

1) Используя опцию -cp с полным путь к файлу jar.

2) Используя -cp только с именем jar, если он находится в текущей папке

3) Копирование флага в текущую папку проекта

4) Копирование банки в стандартное расположение java-банок (/ usr / share / java)

Это решение сообщается для класса com.mysql.jdbc.Driver в mysql-коннекторе -java.5 - *. jar, работающий на Linux с OpenJDK версии 1.7

7
задан hitzg 18 July 2015 в 12:46
поделиться

2 ответа

matplotlib имеет API обработки событий, который вы можете использовать, чтобы подключаться к действиям, подобным тем, на которые вы обращаетесь. На странице Event Handling представлен обзор API событий, и есть (очень) краткое описание событий x- и y-ограничений на странице Axes .

В вашем сценарии вы хотите зарегистрировать функции обратного вызова на событиях xlim_changed и ylim_changed объекта. Эти функции будут вызваны всякий раз, когда пользователь увеличит или сдвинет область просмотра.

Ниже приведен минимальный рабочий пример:

import matplotlib.pyplot as plt

#
# Some toy data
x_seq = [x / 100.0 for x in xrange(1, 100)]
y_seq = [x**2 for x in x_seq]

#
# Scatter plot
fig, ax = plt.subplots(1, 1)
ax.scatter(x_seq, y_seq)

#
# Declare and register callbacks
def on_xlims_change(axes):
    print "updated xlims: ", ax.get_xlim()

def on_ylims_change(axes):
    print "updated ylims: ", ax.get_ylim()

ax.callbacks.connect('xlim_changed', on_xlims_change)
ax.callbacks.connect('ylim_changed', on_ylims_change)

#
# Show
plt.show()
17
ответ дан ImportanceOfBeingErnest 22 August 2018 в 10:52
поделиться
  • 1
    Этот пример не работает для Python 3. Даже если исправлены print s и xrange, axes.get_xlim() не создает значений. – eatcrayons 7 September 2017 в 03:52
  • 2
    @eatcrayons Это правильно, потому что axes не определен; он должен быть ax.get_xlim() - я отредактировал ответ. – ImportanceOfBeingErnest 2 February 2018 в 15:58
print ax.get_xlim(), ax.get_ylim()
1
ответ дан EL_DON 22 August 2018 в 10:52
поделиться
  • 1
    Вероятно, это не то, о чем спрашивал ОП; по моему опыту, эти функции возвращают пределы, заданные set_xlim (), но не обращают внимания на то, какое представление пользователь вручную запустил / увеличил впоследствии. – dominecf 10 March 2017 в 15:32
  • 2
    Тогда почему принятый ответ работает? Он также использует .get_xlim. – EL_DON 27 April 2017 в 03:22
  • 3
    Да, этот ответ верен в том смысле, что ax.get_xlim() вернет текущие пределы графика в любой момент времени, даже после масштабирования. Поэтому, если один из них способен взаимодействовать с фигурой и вызывает такую ​​команду в интерактивном режиме, например, в сеансе IPython это прекрасно работает. Если график создается сценарием, у вас обычно нет этой опции; в этом случае другой ответ показывает, как использовать события, необходимые для печати пределов. – ImportanceOfBeingErnest 2 February 2018 в 16:02
Другие вопросы по тегам:

Похожие вопросы: