Cách thêm tiêu đề vào Seaborn Facet Plot


95

Làm cách nào để thêm tiêu đề cho cốt truyện Seaborne này? Hãy đặt cho nó một tiêu đề 'TÔI LÀ MỘT TIÊU ĐỀ'.

tips = sns.load_dataset("tips")
g = sns.FacetGrid(tips, col="sex", row="smoker", margin_titles=True)
g.map(sns.plt.scatter, "total_bill", "tip")

âm mưu

Câu trả lời:


164

Sau những dòng đó:

plt.subplots_adjust(top=0.9)
g.fig.suptitle('THIS IS A TITLE, YOU BET') # can also get the figure from plt.gcf()

Nếu bạn thêm một suptitle mà không điều chỉnh trục, các tiêu đề của các mặt sơ sinh sẽ chồng lên nó.

(Với dữ liệu khác nhau):

nhập mô tả hình ảnh ở đây


6
Điều này làm việc cho tôi nhưng tôi phải sử dụng plt.subplots_adjust(top=0.8)thay vì top=0.9.
Mack

5
suptitlecũng có một ytham số. Điều này đã làm việc cho tôi:g.fig.suptitle('foo', y=1.05)
trianta2

1
Điều này không hoạt động nếu bạn sử dụng col_wrapvì khi đó cả ô hình và trục cuối cùng ô con (phía dưới bên phải) sẽ kế thừa cùng một tiêu đề.
xApple

25

Trong máy tính xách tay ipython, điều này đã làm việc cho tôi!

sns.plt.title('YOUR TITLE HERE')

10
Tôi cố gắng này và nó thêm một tiêu đề để hình dưới bên phải, không phải toàn bộ con số
crypdick

12
Truy cập pltqua snsgói đã không được chấp nhận trong 0.8.1. Điều này nên được thực hiện bằngplt.title('YOUR TITLE HERE')
Mack

2
AttributeError: module 'seaborn' không có thuộc tính 'plt'
xApple

AttributeError: module 'seaborn' không có thuộc tính 'plt'
seralouk


3

Điều làm việc cho tôi là:

sns.plt.suptitle('YOUR TITLE HERE')


2
AttributeError: module 'seaborn' không có thuộc tính 'plt'
xApple

1
AttributeError: module 'seaborn' không có thuộc tính 'plt'
seralouk

1
plt.suptitle("Title") 

hoặc là

plt.title("Title")

Điều này đã làm việc cho tôi.


0

Các câu trả lời đang sử dụng sns.plt.title()sns.plt.suptitle()không hoạt động nữa.

Thay vào đó, bạn cần sử dụng title()hàm của matplotlib :

import matplotlib.pyplot as plt
sns.FacetGrid(<whatever>)
plt.title("A title")

1
Điều này không đặt tiêu đề ở vị trí chính xác cho tôi.
Gabriel Romon

4
Bạn đã thử plt.suptitle()?
crypdick

Câu trả lời của bạn không hoạt động vì nó ảnh hưởng đến tiêu đề của ô con trục cuối cùng (phía dưới bên phải). Đề xuất của bạn plt.suptitle()cũng sửa đổi các trục cuối cùng cũng như hình chính.
xApple

0

Tiêu đề sẽ không được căn giữa với tiêu đề phụ. Để đặt vị trí của tiêu đề, bạn có thể sử dụng plt.suptitle("Title", x=center)

Trong trường hợp của tôi, các ô con của tôi nằm trong lưới 2x1, vì vậy tôi có thể sử dụng bbox = g.axes[0,0].get_position()để tìm hộp giới hạn và sau đócenter=0.5*(bbox.x1+bbox.x2)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.