我在 Squarify 的文档中找不到编辑树形图中矩形形状的方法。我想将其中一个矩形显示为其他矩形之一的正方形子集。这是我目前拥有的:
import squarify
from matplotlib import pyplot as plt
treemap_df = pd.DataFrame({
'names': ['A', 'B', 'C'],
'sizes': [25, 50, 75]
})
plt.figure(figsize=(10, 4))
ax = squarify.plot(
treemap_df.sizes,
label=treemap_df.names,
color=["red","green","grey"],
alpha=.8,
edgecolor="white",
linewidth=4
)
# I can get the coordinates of the squares/patches like this:
for rect in ax.patches:
x, y, w, h = rect.get_x(), rect.get_y(), rect.get_width(), rect.get_height()
c = rect.get_facecolor()
print(f'Rectangle x={rect.get_x()} y={rect.get_y()} w={rect.get_width()} h={rect.get_height()} ')
plt.axis('off')
plt.title('Basic Treemap')
plt.show()
这给了我以下输出:
所以,假设我只想编辑绘图,使矩形“A”是一个正方形——有什么办法可以做到吗?理想情况下,我希望能够使形状“B”甚至不是正方形,而是看起来像“A”是矩形“B”的插入(然后在其实际足迹中具有 L 形状),但只是能够完全调整矩形形状/位置会很棒。谢谢。