我已经了解到包adjustText
在避免标签重叠方面的效率,我想使用由prince
创建的下图:
以下是创建图像的代码:
import pandas as pd
import prince
from adjustText import adjust_text
pd.set_option('display.float_format', lambda x: '{:.6f}'.format(x))
X=pd.DataFrame(data=[ ... my data ... ],
columns=pd.Series([ ... my data ... ]),
index=pd.Series([ ... my data ...]),
)
ca = prince.CA(n_components=2,n_iter=3,copy=True,check_input=True,engine='auto',random_state=42)
ca = ca.fit(X)
ca.row_coordinates(X)
ca.column_coordinates(X)
ax = ca.plot_coordinates(X=X,ax=None,figsize=(6, 6),x_component=0,y_component=1,show_row_labels=True,show_col_labels=True)
ax.get_figure().savefig('figure.png')
在我能找到的所有adjustText
示例中,始终可以直接访问标签的坐标。在这种情况下,如何访问标签的坐标?我如何将adjust_text
应用于这个数字
首先,通过
plot_coordinates()
禁用标签显示:然后,提取列和行的坐标:
结构
XCOLS
、YCOLS
、XROWS
、YROWS
是具有浮点值(坐标)的字典。让我们将两个x轴字典合并到一个x轴字典中,我将称之为XGLOBAL
,y轴字典也是如此,合并到YGLOBAL
:现在我只应用
adjust_text()
,如文档中所述:结果是:
请注意,虽然在没有
adjust_text
的情况下图像生成是即时的,但是使用adjust_text
大约需要40秒你也可以在文本迭代中放置一个小角度。我发现它有助于调整文本例程
相关问题 更多 >
编程相关推荐