gpt4 book ai didi

python - 移动 Pandas 图例会导致标签从补丁更改为行

转载 作者:太空宇宙 更新时间:2023-11-03 15:46:26 26 4
gpt4 key购买 nike

我正在移动 Pandas 图例,但试图将其保留为补丁。当我尝试调整参数时,它会切换到线条 - 我是否缺少一个设置来阻止这种情况发生,或者我是否意外重置了图例或其他内容?我做错了什么? p>

代码有点复杂,所以我添加了有用的部分。不要担心格式错误,我只是跳过了一些格式行以使其更易于理解。

简化代码:

my_colors = list(['goldenrod', 'royalblue', 'darkviolet', 'firebrick'])

#set up subplots
fig_heatprop, axes_heatprop = plt.subplots(nrows=2, ncols=1, sharex=True, gridspec_kw = {'height_ratios':[8, 1]})

#make totales percentages
df_touse_perc = df_touse.divide(df_touse.sum(axis=1), axis=0).multiply(100)

ax = df_touse_perc.plot(kind='area', stacked=True, color=my_colors, ax=axes_heatprop[0]) #.legend(bbox_to_anchor=(0.2, -0.3), ncol=2)

这样做: enter image description here

但是如果我尝试移动图例,它会将其从补丁交换为线条

#move legend
ax.legend(loc=9, bbox_to_anchor=(0.2, -0.2), ncol=2)

enter image description here

最佳答案

首先通过在主代码块的最后一行将属性 legend 设置为 False 来删除默认图例

ax = df_touse_perc.plot(kind='area', 
stacked=True,
color=my_colors,
ax=axes_heatprop[0],
legend=False)

对于补丁,您可以为每种颜色创建一个补丁并拥有它们的列表,最后您可以使用您提到的行设置图例,同时将 handles 属性设置为创建的补丁列表

import matplotlib.patches as mpatches
patch =[]
for c,l in zip(my_colors,df_touse_perc.columns.tolist()):
patch.append(mpatches.Patch(color=c, label=l))

ax.legend(handles=patch,loc=9, bbox_to_anchor=(0.2, -0.2), ncol=2)

关于python - 移动 Pandas 图例会导致标签从补丁更改为行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41699303/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com