2015-10-01 16 views
7

Tôi muốn có thể kiểm soát số lượng các dấu trục trên một âm mưu seaborn trong Python 3.5. Tôi rất quen với việc sử dụng ggplot của R, vì vậy tôi gặp rắc rối với chức năng tương tự trong Python.Thay đổi số lượng các dấu x trục trong các ô dưới biển

Như một ví dụ, đây là loại dữ liệu Tôi hiện đang làm việc với:

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"] 

Và tôi muốn làm một cái gì đó giống như facet_wrap ggplot của() bằng cách thực hiện:

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) 

Tuy nhiên, tôi nhận được các lỗi sau. Vấn đề có vẻ là một cái gì đó về việc thiết lập nhãn trục trong FacetGrid, nhưng tôi không biết làm thế nào để giải quyết nó. Đây có phải là một vấn đề với Python 3 hoặc với chỉ định trục trên một cốt truyện facetted?

UserWarning: tight_layout : falling back to Agg renderer 

warnings.warn ("tight_layout: té ngửa ra AGG renderer")

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

Trả lời

11

set_xticks là một phương pháp trên một đối tượng matplotlib Axes, nhưng FacetGrid có nhiều trục. Bạn có thể lặp lại chúng và đặt xticks trên mỗi cái, nhưng một cách dễ dàng hơn là gọi FacetGrid.set(xticks=np.arange(1,4,1)), sẽ thực hiện vòng lặp nội bộ.

Các vấn đề liên quan