У меня есть некоторые данные по продольным испытаниям, и я хотел изучить общую тенденцию для этих данных.Мои данные настроены так:
import seaborn as sns
import matplotlib.pyplot as plt
test_data = pd.read_csv('./Files Used to Generate Graphs/test_data.csv',header = 0)
test_data
Я хочу построить эти данные так, чтобы у каждого донора был свой собственныйпродольная линия данных, но окрасьте каждую строку в зависимости от пола донора следующим образом:
test_plt = sns.lineplot(x = 'Timepoint',y = 'Prevalence',
hue = 'Gender',
data = test_data,
style = 'Donor',
palette = dict(Male = 'red',
Female = 'blue'))
for line in test_plt.lines:
line.set_linestyle("-")
ax = plt.gca()
legend = ax.legend()
legend.set_visible(False)
plt.figure()
Однако, похоже, что линия моряка стиль аргумент ограничен 6 типами.Если я пытаюсь добавить другого донора к своим данным и нанести их на график, я получаю это:
append_df = pd.DataFrame(index = [12,13],
columns = ['Donor','Timepoint','Gender','Prevalence'])
append_df['Donor'] = 7
append_df['Gender'] = 'Female'
append_df.loc[12,'Timepoint'] = 1945
append_df.loc[13,'Timepoint'] = 1948
append_df.loc[12,'Prevalence'] = 18
append_df.loc[13,'Prevalence'] = 36
test_data = test_data.append(append_df)
test_data
test_plt = sns.lineplot(x = 'Timepoint',y = 'Prevalence',
hue = 'Gender',
data = test_data,
style = 'Donor',
palette = dict(Male = 'red',
Female = 'blue'))
for line in test_plt.lines:
line.set_linestyle("-")
ax = plt.gca()
legend = ax.legend()
legend.set_visible(False)
plt.figure()
Так есть ли способ обойти это ограничение на lineplot или мне нужно пройти через Matplotlib для этого?Если последнее, как будет выглядеть код Matplotlib?
На отдельном примечании, есть ли способ создать легенду на графике морского дна, которая показывает пол каждого донора, а не каждого конкретного донора?