0
我想創建基於不同分類列的點着色數據集的散點圖。 Seaborn行之有效這裏一個情節:Python繪製不同的數據幀列(使用Seaborn?)
fg = sns.FacetGrid(data=plot_data, hue='col_1')
fg.map(plt.scatter, 'x_data', 'y_data', **kws).add_legend()
plt.show()
我再要顯示的數據相同,但色調=「COL_2」和色調=「col_3」。如果我只拍3張圖,效果很好,但我真的希望找到一種方法讓它們在一個圖中顯示爲子圖。不幸的是,我還沒有找到任何方法來改變從一個情節到另一個情節的色調。我知道有繪圖API允許使用axis關鍵字,因此可以將它彈出到matplotlib圖中,但是我沒有找到同時允許您設置'ax ='和'hue ='的API。有任何想法嗎? 在此先感謝!
編輯: 下面是一些示例代碼來說明這個想法
xx = np.random.rand(10,2)
cat1 = np.array(['cat','dog','dog','dog','cat','hamster','cat','cat','hamster','dog'])
cat2 = np.array(['blond','brown','brown','black','black','blond','blond','blond','brown','blond'])
d = {'x':xx[:,0], 'y':xx[:,1], 'pet':cat1, 'hair':cat2}
df = pd.DataFrame(data=d)
sns.set(style='ticks')
fg = sns.FacetGrid(data=df, hue='pet', size=5)
fg.map(plt.scatter, 'x', 'y').add_legend()
fg = sns.FacetGrid(data=df, hue='hair', size=5)
fg.map(plt.scatter, 'x', 'y').add_legend()
plt.show()
這繪製我想要的東西,但在兩個窗口。顏色方案通過「寵物」分組在第一個圖中設置,在第二個圖中通過「頭髮」設置。有沒有辦法在一個情節上做到這一點?
如果此解決方案是不是你是什麼之後,你應該提供問題的樣本數據集,並解釋清楚了每個情節應該顯示。 – ImportanceOfBeingErnest
上面的圖是我之後的,除了指定顏色的列是分類變量。所以,例如,「col1」可能是 'favorite_movies = ['batman','lego movie','alien',...]' 這就是使用Seaborn看起來像一個不錯的選擇的地方,我遇到了一些問題,試圖改變用於設置從情節到情節的色調的數據。 – user7828298
我建議您向我們展示產生您想要的數據框的代碼(例如,不清楚所有列的值是否相同)。然後,我們可以找到解決方案 – ImportanceOfBeingErnest