2016-04-16 15 views
5

Tôi có bản vẽ cốt truyện sau với Python và Seaborn sử dụng phương thức factorplot(). Có thể sử dụng kiểu đường như một chú giải để thay thế chú giải dựa trên màu của dòng bên phải không? enter image description herePython Seaborn Matplotlib thiết lập kiểu dòng là chú thích

graycolors = sns.mpl_palette('Greys_r', 4) 
g = sns.factorplot(x="k", y="value", hue="class", palette=graycolors, data=df, linestyles=["-", "--"]) 

Hơn nữa tôi đang cố gắng để có được cả hai dòng màu đen bằng cách sử dụng color = "đen" tham số trong phương pháp factorplot của tôi, nhưng kết quả này trong một ngoại lệ "factorplot() có một cuộc tranh cãi từ khóa bất ngờ 'màu' ". Làm thế nào tôi có thể vẽ cả hai dòng trong cùng một màu sắc và tách chúng bởi phong cách chỉ?

Cảm ơn bạn

Trả lời

3

Tôi đã được tìm kiếm một giải pháp cố gắng để đưa các linestyle trong truyền thuyết như matplotlib, nhưng tôi vẫn chưa tìm ra cách để làm điều này trong sanh ở biển. Tuy nhiên, để làm cho dữ liệu rõ ràng trong truyền thuyết tôi đã sử dụng khác nhau markers:

import seaborn as sns 
import numpy as np 
import pandas as pd 

# creating some data 
n = 11 
x = np.linspace(0,2,n) 
y = np.sin(2*np.pi*x) 
y2 = np.cos(2*np.pi*x) 
df=pd.DataFrame({'x':np.append(x, x),'y':np.append(y, y2),'class':np.append(np.repeat('sin',n),np.repeat('cos',n))}) 

# plot the data with the markers 
# note that I put the legend=False to move it up (otherwise it was blocking the graph) 
g=sns.factorplot(x="x",y="y",hue="class",palette=graycolors, data=df, linestyles=["-", "--"],markers=['o','v'], legend=False) 
# placing the legend up 
g.axes[0][0].legend(loc=1) 
#showing graph 
plt.show() 

the graph

+0

Awesome, cảm ơn. Vẫn liên quan đến tôi –

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