2015-10-02 17 views
9

Làm cách nào để che phủ hai biểu đồ trong Seaborn? Tôi có hai cột trong dữ liệu của mình tôi muốn có chúng trong cùng một biểu đồ. Làm thế nào tôi có thể làm điều đó bảo quản ghi nhãn cho cả hai đồ thị.Làm cách nào để có thể chồng lên hai biểu đồ trong Seaborn?

+0

Nó không rõ ràng những gì câu hỏi này được hỏi. Loại biểu đồ nào? Bạn có thể tạo ra nhiều loại biểu đồ với seaborn, và cách tiếp cận đúng sẽ khác nhau tùy thuộc vào những gì bạn đang làm. Mối quan hệ giữa các biến là gì? "Bảo quản ghi nhãn" có nghĩa là gì? Làm thế nào để bạn muốn phân biệt hai biến? Trong bất kỳ trường hợp nào, trong phạm vi mà sẽ có một câu trả lời chung, nó sẽ là một câu trả lời về matplotlib, không phải là bẩm sinh. – mwaskom

+0

(1) bất kỳ loại biểu đồ nào (2) tất nhiên (3) rằng các nhãn vẫn còn đó. nhãn trục của cả hai đồ thị ví dụ (4) màu sắc ví dụ –

Trả lời

16

sanh ở biển chức năng hoạt động trên một trục duy nhất có thể lấy một như một cuộc tranh cãi.

Ví dụ, các tài liệu để seaborn.kdeplot bao gồm:

ax : matplotlib axis, optional 
    Axis to plot on, otherwise uses current axis 

Vì vậy, nếu bạn đã làm:

df = function_to_load_my_data() 
fig, ax = plt.subplots() 

Sau đó, bạn có thể làm:

seaborn.kdeplot(df['col1'], ax=ax) 
seaborn.kdeplot(df['col2'], ax=ax) 
+1

Cảm ơn, nhược điểm duy nhất là việc ghi nhãn không dành cho cả hai biểu đồ. –

+2

@ DavoudTaghawi-Nejad cũng bạn có đối tượng 'ax', vì vậy bạn có thể làm bất cứ điều gì vào thời điểm đó, thực sự. –

+0

Tôi làm cách nào để thêm chú thích trong trường hợp này? – famargar

-2

Ví dụ đơn giản nhất sẽ là:

import seaborn as sns 

import matplotlib.pyplot as plt 

data1 = [1, 2, 3, 4, 5] 

data2 = [1, 1.1, 1.3, 4, 4.1] 

def plotter(): 
    plt.plot(data1) 
    plt.plot(data2) 
    plt.show() 


plotter() 
+1

Ví dụ này là sử dụng bản địa 'matplotlib', không phải là bẩm sinh, phải không? – VMAtm

8

Một giải pháp là để giới thiệu một trục phân cách:

fig, ax = plt.subplots() 
    sb.regplot(x='round', y='money', data=firm, ax=ax) 
    ax2 = ax.twinx() 
    sb.regplot(x='round', y='dead', data=firm, ax=ax2, color='r') 
    sb.plt.show() 

enter image description here

+1

có thể sẽ giúp bạn có chú thích trong trường hợp này. để làm như vậy bạn có thể sử dụng tham số nhãn trong hàm seaborn nhưng dường như bạn cần gọi plt.legend() sau mỗi hàm vẽ – awakenting

1

Các dữ liệu về cá nhân vs dữ liệu cắt dán công nhưng hoạt động, như chúng ta có thể thấy chúng ta tải tất cả các thông số toàn cầu cho một đối tượng sanh ở biển và sau đó chúng tôi lập bản đồ các bảng xếp hạng với cửa sổ tương tự.

import seaborn as sns 

import matplotlib.pyplot as plt 

import pandas as pd 


df = pd.read_csv('College_Data',index_col=0) 

g = sns.FacetGrid(df,hue='Private',palette='coolwarm',size=6,aspect=2) 

g.map(plt.hist,'Outstate',bins=20,alpha=0.7) 

See Chart

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