matplotlib 使海运线形图与图例宽度相同[复制]

izkcnapc  于 6个月前  发布在  其他
关注(0)|答案(1)|浏览(55)

此问题在此处已有答案

How to change the figure size of a seaborn axes or figure level plot(14个答案)
27天前关闭
我想把下面的图水平拉伸,以填满所有的空间;而不是在图的右边放白色空间,我想把x轴拉伸,这样线图就和图例一样宽了。它不一定是精确的或自动的;我很高兴有一个解决方案,我手动调整宽度。
当前代码生成的图形:x1c 0d1x
当前代码:

import matplotlib.pyplot as plt
import seaborn as sns

sns.lineplot(data=df_wide)
plt.legend(ncol=4, loc='upper left', bbox_to_anchor=(0.0, -.1), )
plt.xticks(rotation=90, ha='right', rotation_mode='anchor')
plt.xlabel("")
plt.ylabel("Pct. of bios")

字符串
我试着添加:

plt.gca().set_aspect(80)


但无论我选择的数字是多少,它都只是在垂直方向上拉伸和收缩图形,而不会改变其与图例成比例的宽度。(顺便说一句,我不知道为什么我需要使这个数字如此巨大;将其设置为1会导致整个线图区域完全变平为水平线)。
尝试添加.set_aspect()

时的图形
我也试着补充:

plt.figure(figsize=(18, 6))


最后,或者:

sns.set(rc={'figure.figsize':(18, 6)})


在创建图之前,但无论数字如何,这也不会改变图和图例之间的宽度比。(注意,第二个建议是对related question的公认答案,但在这里不起作用)
我不想通过改变图例字体大小来解决这个问题,因为那样我就不得不手动调整其他标签字体的大小(这样它们看起来就不会比图例大)。

qv7cva1a

qv7cva1a1#

你会考虑使用一个relplot,也需要高度和方面的参数?

ax = sns.relplot(data=flights_wide, kind="line", height = 8, aspect = 1.25)

字符串


的数据

相关问题