在全息视图中,如何对覆盖的范畴轴进行排序?

2024-05-15 05:19:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas数据帧,有3个分类列(a、B、C)和1个数字(N)。我用x轴a,y轴N绘制散点图,并用B分层(为了便于参考,让我们制作这个二进制文件)。因此,每个a-C组合都有一个点,由B(2色)着色。这将产生一个NdLayout对象。在

现在我试着得到x轴的正确顺序,其中的值是由该类别的值的绝对和来排序的(不考虑地层,即B)。在

如果我只是基于组和对数据帧中的A的条目进行排序,那么它在大多数情况下都有效。然而,在一个例子中,对于B的某个特定地层没有A-C条目,即缺少数据。例如,如果B=1,则该地层的a值不存在,但B=0时确实存在。所以当绘制这个图时,值被添加到错误的位置,就像我使用NdLayout一样。在

是否有一个后绘图过程来更改维度中的因子顺序?在

import holoviews as hv
hv.extension("matplotlib")
import colorcet as cc

ds = hv.Dataset(data,kdims=["A"],vdims=["N","B"])
scatter = ds.to(hv.Scatter,"A","N","B").overlay().opts(opts.Scatter(color=hv.Cycle([cc.isolum[0]] + [cc.isolum[-1]]),xrotation=90))

示例:

^{pr2}$
print(featureOrder)
Index(['Sample_17', 'Sample_18', 'Sample_13', 'Sample_16', 'Sample_11',
       'Sample_15', 'Sample_14', 'Sample_10', 'Sample_19', 'Sample_12',
       'Sample_9', 'Sample_6', 'Sample_8', 'Sample_7', 'Sample_5', 'Sample_4',
       'Sample_3', 'Sample_2', 'Sample_1', 'Sample_0'],
      dtype='object', name='A')

enter image description here

在图的末尾加上了19个样本,而它应该是第9个。如果我改变B的值,那么图的顺序是正确的。在


Tags: 数据sampleimport排序顺序asds绘制
1条回答
网友
1楼 · 发布于 2024-05-15 05:19:24

根据上面的例子,如果您将scatter[1] * scatter[0]与{}进行比较,您将看到它是一个覆盖的第一个元素,它定义了范畴轴的顺序,其余的元素只是附加的(正如您已经发现的那样)。在

目前的一个解决方法是为您希望成为订单一部分的所有缺失数据插入nan。在

(关于分类轴排序的更一般的方法,这是最近几期文章的内容,希望有一天能够实现——请参阅我的评论中链接的github问题。)

相关问题 更多 >

    热门问题