gpt4 book ai didi

python - 将 matplotlib 图例保存为单独的图像

转载 作者:行者123 更新时间:2023-12-02 09:33:13 25 4
gpt4 key购买 nike

在发布问题之前我浏览了以下链接。

Get legend as a separate picture in Matplotlib

我无法为我的示例复制提供的解决方案。

这是我的数据框和代码。我想将图例保存为单独的图像。

df=pd.DataFrame(index=['A','B','C','D'], columns=['Values'])
df['Values'] = [0.45,0.28,0.21,0.3]

fig=plt.figure(figsize=(8,8))
ax1 = plt.subplot(121, aspect='equal')
df['Values'].dropna().plot(kind='pie', autopct='%1.0f%%', startangle=220, labels=None,
colors=['#002c4b','#392e2c','#92847a','#ccc2bb','#6b879d'])

patches, labels = ax1.get_legend_handles_labels()
pp = ax1.legend(patches, labels=df.index, loc='center right', bbox_to_anchor=(0, 0.5),
fontsize=8, frameon=False, labelspacing=4)
ax1.axis('off')
plt.ylabel('')
img_name = 'unit1.png'
plt.savefig(img_name,bbox_inches='tight', dpi = 300)
plt.close(fig)

请提出前进的方向。

最佳答案

不知何故,matplotlib 的 pandas 接口(interface)似乎搞乱了对 get_legend_handles_labels 的调用。下面的代码与您编写的代码等效,但使用 matplotlib 的接口(interface)。

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame(index=['A','B','C','D'], columns=['Values'])
df['Values'] = [0.45, 0.28, 0.21, 0.3]

fig, ax = plt.subplots()
ax.pie(df["Values"].dropna(),
colors=['#002c4b', '#392e2c', '#92847a', '#ccc2bb', '#6b879d'],
autopct='%1.0f%%',
startangle=220,
labels=df.index,)
ax.legend(loc="best")

# get handles and labels for reuse
label_params = ax.get_legend_handles_labels()

figl, axl = plt.subplots()
axl.axis(False)
axl.legend(*label_params, loc="center", bbox_to_anchor=(0.5, 0.5), prop={"size":50})
figl.savefig("LABEL_ONLY.png")

您可能需要使用 figaspectprop 以获得标签大小和位置的最佳结果。

关于python - 将 matplotlib 图例保存为单独的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60732708/

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