猿问

如何使用FacetGrid显示一些选定的行

我有一个数据框,并有一个名为“ my_row”的列。它具有许多价值。我只想查看FacetGrid上属于该行“ my_row”特定值的某些数据。我尝试制作数据框的一个子集并将其可视化,但还是以某种方式让seaborn“知道”我的原始数据框在“ my_row”列中具有更多值,并显示了不需要的行的空图。
因此,使用下面的代码仍然可以得到一个包含两行数据的图形,此后还有许多空图。

X = df[(df['my_row']=='1') | (df['my_row']=='2')].copy()
g = sns.FacetGrid(X, row='my_row', col='column')

我怎样才能告诉python只绘制那2行?


炎炎设计
浏览 167回答 3
3回答

长风秋雁

对于任何遇到此问题的人,问题在于那my_row是绝对类型。要解决,请将其更改为str。IE    X = df[(df['my_row']=='1') | (df['my_row']=='2')].copy()    X['my_row']=X['my_row'].astype(str)    g = sns.FacetGrid(X, row='my_row', col='column')现在应该可以了!:)

牛魔王的故事

并将我的代码更改为此:g = sns.FacetGrid(df, row='my_row', col='column')for i in list(range(2,48)):    for j in list(range(0,12)):        g.axes[i,j].set_visible(False)因此,我不得不逐个遍历每个图,以使其不可见。但是我认为应该有一种更简单的方法来做到这一点。最后,我仍然不了解FacetGriddf在使用X和输入时如何知道原始数据帧的大小。这是一个有效的答案,但我认为必须有更好的解决方案。我的答案的一个问题是,当我保存图形时,在保存的图形中有一个大的空白空间(对应于将其可见性设置为False的轴),在运行代码时在jupyter笔记本中看不到。如果FacetGrid只是绘制我提供的数据框作为输入(在本例中为X),就不会再有问题了。应该有一种方法可以做到这一点。
随时随地看视频慕课网APP

相关分类

Python
我要回答