2012-10-18 11 views
18

Cho đến nay tôi đã đặt suptitles ta lên trên các khung hình, như thế này:Vị trí văn bản Matplotlib ví dụ: suptitle bên trong khung

enter image description here

Làm thế nào tôi có thể nhận được suptitles từ trên khung vào khung?

Cho đến nay tôi có giải pháp chỉ in văn bản và đặt nó ở đúng vị trí với tính toán xlim và ylim. Tuy nhiên, đây là lỗi và nếu văn bản khác thì nó trông có vẻ bất tiện. Có cách nào để đặt siêu nhãn vào khung? Hoặc chỉ cần đặt văn bản bên dưới khung và căn giữa? nó sẽ thực sự thuận tiện, nếu tôi không cần biết về dữ liệu được hiển thị bên trong khung.

Trả lời

22

Giải pháp của bạn bằng cách sử dụng text cũng là giải pháp truy cập của tôi. Tuy nhiên, bạn không cần tính toán vị trí dựa trên xlim và ylim. Nếu bạn đặt transform=ax.transAxes tọa độ để định vị văn bản được lấy là tương đối so với hộp giới hạn trục (0,0 là góc dưới bên trái). Cũng giống như vậy:

data = range(1,10); 
fig = figure() 
for i in range(6): 
    ax = fig.add_subplot(2,3,i) 

    ax.text(.5,.9,'centered title', 
     horizontalalignment='center', 
     transform=ax.transAxes) 

    ax.plot(data) 
show() 

Plot showing text relative to axes bounding box.

Hy vọng rằng sẽ giúp!

+0

cảm ơn! tôi biết nó sẽ dễ dàng xD – tarrasch

+1

vì vậy nếu tôi được cho là muốn thêm một b c d trên cạnh trên bên trái của các lô, những người đã được tất cả các phạm vi khác nhau, làm thế nào tôi sẽ làm điều đó? – tarrasch

24

Bạn đã xem xét axes.title? Bạn có thể xem tài liệu cho nó here. Bạn cũng có thể chuyển tọa độ x và y làm đối số từ khóa ax.title("my title", x=0.5, y=0.6).

Hy vọng điều này sẽ hữu ích.

+1

Điều này có vẻ giống như giải pháp đơn giản nhất. –

+1

Hoặc thậm chí 'ax.title (" tiêu đề của tôi ", vị trí = (0,5, 0,6))' – Alex

+5

Đó sẽ là 'matplotlib.pyplot.title' hoặc' axis.set_title'. – tsbertalan