我的 CSV 文件中有数据,我想在 Swarmplot 中绘制这些数据,就像这里的第四个示例 https://stanford.edu/~mwaskom/software/seaborn/tutorial/categorical.html - 即用颜色表示组。
在 CSV 文件中,数据按如下所示的行排列:
Group,1,1,2,2
Value1,0.5,0.3,0.2,0.1
Value2,1.7,1.3,1.1,1.0
...
我希望群图上的颜色由组确定,并且每个值都有一个单独的图。
我已经走到这一步了:
import pandas as pns
import seaborn as sns
data_in = pns.read_cvs('file.csv',header=None,index_col=0)
data_t = data_in.transpose()
此时我的数据框如下所示:
0 Group Value1 Value2 ...
1 1 0.5 1.7
2 1 0.3 1.3
3 2 0.2 1.1
4 2 0.1 1.0
如果我那么做
k = data_t.keys()[[2,3]]
sns.swarmplot(data_t[k])
我可以拉出我想要的列,并得到一个除了颜色之外看起来不错的图。我的问题是,为了使用hue关键字参数指定颜色,我还必须指定“x”或“y”参数。我不知道如何将我的数据框操作为可以指定这些变量中的任何一个的格式。我想想要得到这样的东西:
0 Group Name Value
1 1 Value1 0.5
2 2 Value1 0.3
3 1 Value2 0.2
4 2 Value2 0.1
...
但是我无法确定是否要使用 stack()、pivot_table 或其他完全不同的东西。
提前致谢。
最佳答案
为了转换表格,您可以使用melt
pd.melt(df,id_vars='Group',value_vars=['Value1','Value2'])
Group variable value
0 1 Value1 0.5
1 1 Value1 0.3
2 2 Value1 0.2
3 2 Value1 0.1
4 1 Value2 1.7
5 1 Value2 1.3
6 2 Value2 1.1
7 2 Value2 1.0
关于python - 为 Seaborn 群图获取正确格式的 Pandas Dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37069439/