首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matplotlib "savefig“as pdf,文本覆盖

Matplotlib "savefig“as pdf,文本覆盖
EN

Stack Overflow用户
提问于 2018-07-11 22:54:59
回答 2查看 861关注 0票数 1

如果我在python中运行这段代码:

代码语言:javascript
复制
titles = ctf01[0,1:] 

fig = plt.figure(figsize=(11.69,8.27), dpi=100)

for num in range(len(titles)):

    ax = fig.add_subplot(3,4,num+1)

    ax.plot(ctf03[1:,num+1], ctf0102[:,num], 'ro')

    ax.set_title(titles[num])

plt.tight_layout()

fig.text(0.5, 0.04, 'CTF12', ha='center')

fig.text(0.04, 0.5, 'CTF3', va='center', rotation='vertical')

fig.savefig("example.pdf")

我在pdf文件中得到了如下内容:

我想用红色圆圈中显示的“人物标题”来解决这个问题。如果我将0.04值设置为负值,则标题用完纸张。

我还想通过将子图(绿色圆圈)的标题移动到图中来节省一些空间。你知道我怎么才能实现这一点吗?

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2018-07-12 02:22:35

尝试在fig.savefig("example.pdf")之前添加下面的行。

代码语言:javascript
复制
plt.tight_layout()

您的脚本中有它,但它应该在文本之后

票数 0
EN

Stack Overflow用户

发布于 2018-07-13 01:57:07

看起来您正在尝试为整个图形设置x和y标签,这是不可能的,因为这些标签只能在Axes对象上设置。幸运的是,我们可以通过创建一个“不可见”的子图来填充整个区域,并在上面设置标签来解决这个问题。

绘制您的子图后,您可以使用以下命令创建不可见的子图:

代码语言:javascript
复制
label_ax = fig.add_subplot(111, frameon=False)

frameon参数阻止它绘制由默认样式添加的框。然后告诉它不要绘制刻度线并使刻度线标签不可见(我们不能简单地删除它们,因为这会弄乱间距)。

代码语言:javascript
复制
label_ax.tick_params(bottom=False, left=False, labelcolor="none")

最后,设置标签:

代码语言:javascript
复制
label_ax.set_xlabel("CTF12")
label_ax.set_ylabel("CTF3")

通过向set_title函数提供pad参数,可以调整绘图标题的垂直位置。给出一个负值会将标题推入图中,你需要反复试验才能找到有效的值。

将所有这些放在一起(使用虚构的数据):

代码语言:javascript
复制
fig = plt.figure(figsize=(11.69, 8.27), dpi=100)
for i in range(10):
    ax = fig.add_subplot(3, 4, i + 1)
    ax.plot([1, 2, 3, 4, 5], "ro")
    ax.set_title("Plot {}".format(i), pad=-15)

label_ax = fig.add_subplot(111, frameon=False)
label_ax.tick_params(bottom=False, left=False, labelcolor="none")
label_ax.grid(False)  # In case the current style displays a grid.
label_ax.set_xlabel("CTF12")
label_ax.set_ylabel("CTF3")

fig.tight_layout()
fig.savefig("example.pdf")

这就给出了:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51288628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档