2017-08-04 95 views
2

是否有可能構造散點圖,該散點圖對於索引(在此給出索引,或者可以是轉置的列)具有給定不同類的列的特定標記和着色。即 - 在組間保持一致的組着色內。顏色/ marker by index seaborn scatterplot

import pandas as pd 
df = pd.DataFrame({'Class_1': [0.98, 0.93, 0.95], 'Class_2': [0.48, 0.43, 0.45], 'Class_3': [0.78, 0.73, 0.75]}, index = ['precision', 'recall', 'fscore']) 
display(df) 
import seaborn as sns 
import matplotlib.pyplot as plt 
sns.stripplot(data = data) 
plt.show() 

這將產生以下:

enter image description here

不過,我想了解由索引上色的方法,如在這裏完成:

enter image description here

回答

2

將您的數據框從數據透視表重新組織到古典表格數據框,並使用參數stripplot喜歡這裏:

import pandas as pd 
import seaborn as sns 
import matplotlib.pyplot as plt 

df = pd.DataFrame({'Class_1': [0.98, 0.93, 0.95], 'Class_2': [0.48, 0.43, 0.45], 'Class_3': [0.78, 0.73, 0.75]}, index = ['precision', 'recall', 'fscore']) 

# convert dataframe 
df2=df.stack() 
df2 = df2.reset_index() 
df2.columns = ['Index','Classes','Values'] 
print(df2) 

sns.stripplot(data=df2,x='Classes',y='Values',hue='Index', palette="Set2") 

plt.show() 

DF2:

 Index Classes Values 
0 precision Class_1 0.98 
1 precision Class_2 0.48 
2 precision Class_3 0.78 
3  recall Class_1 0.93 
4  recall Class_2 0.43 
5  recall Class_3 0.73 
6  fscore Class_1 0.95 
7  fscore Class_2 0.45 
8  fscore Class_3 0.75 

enter image description here

相關問題