2

我正在尝试调整 geom_text 标签,使它们不会重叠。使用 nudge_x、nudge_y 和 size 调整标签并没有给我一个非常令人满意的结果。我遇到了 adjust_text 包,但我没有设法将它实现到我的代码中。

现在我的图表看起来像这样:

图形

我尝试添加 adjust_text =True (见下文),这给了我以下错误。“参数 {'adjust_text'},geom、stat 或 layer 都不理解。”

(ggplot(nutrient_rel_item, aes(y='Share_calories', x='Share_biomass', color='Type',show_legend=False))
+stat_smooth( aes(y='Share_calories', x='Share_biomass'),method='lm',inherit_aes=False) 
+geom_text(aes(label='Abb'),data=nutrient_rel_item, nudge_x=0.1, nudge_y=0.1, size=4, adjust_text =True)
+facet_wrap('~CCC1',nrow=2)
+ scale_x_log10(labels=lambda l: ["%d%%" % (v * 100) for v in l])
+ scale_y_log10(labels=lambda l: ["%d%%" % (v * 100) for v in l])
+ geom_point(size=0.1) 
+ geom_path(aes(group='Item'), arrow= arrow(angle = 15, length= 0.1, type = "closed"))
+ labs(x='x', y='y')
+ theme(legend_position='none'))
4

1 回答 1

2

您需要传递带有选项的字典来调整文本,因此首先使用所需的选项定义它,例如:

adjust_text_dict = {
    'expand_points': (2, 2),
    'arrowprops': {
        'arrowstyle': '->',
        'color': 'red'
    }
}

然后使用上面的 ggplot 命令启用它,但更改行

+geom_text(aes(label='Abb'),data=nutrient_rel_item, nudge_x=0.1, nudge_y=0.1, size=4, adjust_text =True)

+geom_text(aes(label='Abb'),data=nutrient_rel_item, nudge_x=0.1, nudge_y=0.1, size=4, adjust_text=adjust_text_dict)

话虽如此,您收到的错误消息表明 plotnine 无法识别该选项本身。请注意,您至少需要 0.6.0 版本才能运行它。

于 2019-08-29T21:17:52.943 回答