2016-09-17 5 views
2

Есть ли способ настроить аргумент по умолчанию для histtype функции matplotlib hist()? Поведение по умолчанию состоит в том, чтобы сделать гистограммы типа диаграммы, которые я в основном никогда не хочу посмотреть, так как это ужасно для сравнения нескольких распределений, которые имеют значительное перекрытие.Установка значения по умолчанию histtype в matplotlib?

В случае, если это так важно, поведение по умолчанию, которое я хотел бы достичь, состоит в том, чтобы иметь histtype='step'.

ответ

1

Благодарим вас за то, что вы предложили мне посмотреть на это, так как я предпочитаю гистограммы стиля 'step'! Я решил эту проблему, перейдя в исходный код matplotlib. Я использую anaconda, поэтому он был расположен в anaconda/lib/site-packages/python2.7/matplotlib.

Чтобы изменить стиль гистограммы, я отредактировал два файла. Предполагая, что текущий каталог matplotlib/, затем откройте axes/_axes.py и найдите функцию hist() (она находится на линии 5690 на моей машине, matplotlib версии 1.5.1). Вы должны увидеть аргумент histtype. Измените это на 'step'.

Теперь откройте pyplot.py и снова найдите функцию hist() и внесите такое же изменение в аргумент histtype (строка 2943 в версии 1.5.1 и на моей машине). Есть комментарий о том, что вы не редактируете эту функцию, но я обнаружил, что это проблема, когда я также не редактировал axes/_axes.py.

Это сработало для меня! Другой альтернативой было бы просто написать обертку вокруг hist(), которая изменит аргумент по умолчанию.

+0

Спасибо, что посмотрели на него. Я в основном использовал функцию обертки для hist; к сожалению, взломать исходный код in-situ не вариант, так как мне нужен мой код для работы в различных средах, которые я не контролирую. Но, как вы обнаружили, это жестко закодировано, я думаю, это отвечает на мой вопрос. Было бы неплохо иметь возможность контролировать это с помощью matplotlibrc. – chase

Смежные вопросы