2015-10-01 3 views
7

Я хотел бы иметь возможность контролировать количество тиков оси на морском участке в Python 3.5. Я очень привык использовать ggplot от R, поэтому у меня возникают проблемы с аналогичной функциональностью в Python.Изменить количество осевых точек x на морских участках

Как пример, вот какие данные я в настоящее время работает с:

test = pd.DataFrame() 
test["X"] = [1,2,3,1,2,3] 
test["Y"] = [1,5,3,7,2,4] 
test["Category"] = ["A", "A", "A", "B", "B", "B"] 

И я хотел бы сделать что-то вроде facet_wrap ggplot (в), выполнив:

sns.set(style = "ticks", color_codes = True) 
test_plot = sns.FacetGrid(test, col = "Category") 
test_plot = (test_plot.map(sns.plt.plot, "X", "Y").add_legend()) 
test_plot.set_xticks(np.arange(1,4,1)) 
sns.plt.show(test_plot) 

Однако я получаю следующие ошибки. Проблема, похоже, связана с установкой меток оси в FacetGrid, но я не знаю, как ее разрешить. Это проблема с Python 3 или с указанием осей на фасетном сюжете?

UserWarning: tight_layout : falling back to Agg renderer 

warnings.warn ("tight_layout: падение обратно к Agg визуализатора")

test_plot.set_xticks(np.arange(1,4,1)) 
AttributeError: 'FacetGrid' object has no attribute 'set_xticks' 

ответ

11

set_xticks представляет собой метод на Matplotlib объектно оси, но FacetGrid имеет много осей. Вы можете зациклиться на них и установить xticks на каждом из них, но более простым способом является вызов FacetGrid.set(xticks=np.arange(1,4,1)), который будет выполнять цикл внутри.

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