如何从绘图中有多个类别和子类别的方面的图中摆脱额外的行空间? 我创建了一个方面图,因为我不确定如果没有方面,该如何做到这一点,但我愿意做到这一点。 我有一个带有父类别的列,另一列具有子类别。

问题描述 投票:0回答:1

虚拟数据:

sub categories

图:

import pandas as pd new_data = { 'date': pd.date_range('2022-01-01', periods=11, freq="ME"), 'parent_category': ['Electronics', 'Electronics', 'Fashion', 'Fashion', 'Home Goods', 'Electronics', 'Fashion','Electronics','Electronics','Electronics','Electronics'], 'child_category': ['Smartphones', 'Laptops', 'Shirts', 'Pants', 'Kitchenware','Laptops', 'Shirts', 'Smartphones','PS4','Oven','Vaccum cleaner'] } new_data = pd.DataFrame(new_data)

sissue:

现在,当我使用此绘制时,即使某些父级类别没有相同数量的子类别,它也会为每个父类别创建相同高度的方面。因此,这在图中创建了一个不必要的空白空间行,以使孩子类别较少。

我希望的是并且无法做到:如果子类别较小,则没有空白行间距/分类段。 表示任何帮助或建议:enter image description here 下面显示的示例图:没有较少子类别的类别中没有空白。

来自link

	

一个选项是切换到

import plotnine as p9 from plotnine import * (ggplot(new_data, aes(x="date", y="child_category", group="child_category")) + geom_line(size=1, color="pink") + geom_point(size=3, color="grey") + facet_wrap("parent_category", ncol=1, scales="free_y") + theme_538() + theme(axis_text_x=element_text(angle=45, hjust=1), panel_grid_major=element_blank(), figure_size=(8, 6)) )

使用

facet

将根据类别数来设置面板高度。不过,一个缺点是将条形文本放在右侧(在r i中使用

facet_grid允许使用space="free_y"

的一个列布局。不幸的是,tbmk此扩展名不适用于

ggforce::facet_col)。)。 enter image description herespace="free_y"

python plotnine
1个回答
0
投票


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.