我正在尝试调整geom_text标签,使它们不重叠。使用nudge_x、nudge_y和大小调整标签并不能给我一个非常满意的结果。我遇到了adjust_text包,但我无法将其实现到我的代码中。
现在我的图表看起来像这样:
图
我尝试添加adjust_text =True(见下文(,这给了我以下错误。"参数 {'adjust_text'},几何、统计或图层都无法理解。">
(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'))
您需要传递一个带有调整文本选项的字典,因此首先使用所需的选项对其进行定义,例如:
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 才能运行它。