2013-02-09 3 views
2

Я пытаюсь воспроизвести один из примеров в scikit-learn, plot_iris_dataset.py. Я считаю, что у меня есть последний python-matplotlib (по состоянию на 8 февраля 2013 г.), но я получаю сообщение об ошибке, пытающееся вызвать метод set_zticks (()) в объекте Axes3D. Я не буду копировать весь код, но это так:python-matplotlib AttributeError Axes3D объект не имеет атрибута set_zticks

... 
ax = Axes3D(fig, elev=-150, azim=110) 
... 
ax.set_zticks(() 

выдает ошибку:

AttributeError: 'Axes3D' object has no attribute 'set_zticks' 

Так как я новичок в scikit учиться и Matplotlib, я не совсем уверен, что должен делать звонок. Если я прокомментирую это, я получаю трехмерный сюжет просто отлично (остальная часть кода на приведенной выше странице работает). Я пробовал некоторые поисковые системы, но не нашел для этого работы, но я получаю подсказки, что, возможно, такой вызов устарел. Я решил, что поставил бы вопрос о переполнении стека, надеясь, что кто-то может уточнить меня или других.

EDIT: Теперь я заметил, что вызов должен удалить отметки. Кажется, что это не работает для любого направления, x, y или z, но я получаю только ошибку для z-направления. Вот как выглядит мой график (точки данных не сохраняется в файле PNG по какой-то причине) My plot, notice the tick marks in all dimensions

Другие ссылки:

  • a message thread elsewhere говорят, что эта ошибка может быть исправлена ​​в более поздних версиях.
  • this page gets a google hit, но я не понимаю его или вижу ссылку на zticks.
+0

Что дает «matplotlib .__ version__»? – tacaswell

+1

, и вам нужно вызвать 'plt.draw()', чтобы получить влияние некоторых изменений на объекты осей, которые будут отображаться на дисплее (вы изменили состояние объекта, но это не автоматически обновляет состояние симпатичные вещи, основанные на этом объекте). – tacaswell

+0

@tcaswell это дает «1.0.1» ... Теперь я вижу, что это не последняя версия. Моя ошибка заключалась в том, что я думал, что это актуально, так как apt-get сказал мне об этом (я все еще новичок в Linux и т. Д.). Я попытаюсь обновить до 1.2 и отчитаться. Если вы это быстро увидите: какой лучший способ обновления, кроме apt-get?Я попробую пип. Спасибо! –

ответ

2

я наконец-то эта проблема решена, благодаря @tcaswell ... Я неопытный, так что я не совсем уверен, в конце концов, что получилось, но я попытаюсь объяснить:

Короткий ответ: обновление до последнего matplotlib (до 1.2 из 1.0.1), казалось, было решением.

Длинный ответ: обновление matplotlib было непростым! Я попробовал кучу вещей, поэтому я не уверен, что закончил работать, но вот общий план:

С 9 февраля 2013 года apt-get install получает версию 1.0.1. Таким образом, я удалил и установил из источника, как описано в matplotlib page.

Когда я попробовал это, код скомпилировал, но мои окна с фигурами не появлялись. Это произошло из-за проблем с базой, не считая GTK правильно (или что-то в этом роде). Чтобы это исправить, я настроил setup.cfg файл для построения Matplotlib

<line 58> gtk = True 
<line 57> gtkagg = True 
<line 74> backend = GTKAgg 

Тогда я построил и скомпилирован, как указано на странице выше.

ПРИМЕЧАНИЕ: Я сделал целую кучу других вещей, поэтому я не уверен, что это минимальное решение.

+0

http://stackoverflow.com/questions/14803044/matplotlib-animation-moviewriters-fails-on-ubuntu-12-04/14806555#14806555 Посмотрите на этот ответ, как я справляюсь с этим (после третьего раза я увидел тот же проблема, я, наконец, просто ответил на это ....) – tacaswell

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