首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用twiny时,Python Matplotlib地物标题与轴标注重叠

使用twiny时,Python Matplotlib地物标题与轴标注重叠
EN

Stack Overflow用户
提问于 2012-10-06 00:26:50
回答 6查看 213.8K关注 0票数 162

我正在尝试使用twiny在同一张图上绘制两个不同的量,如下所示:

fig = figure()
ax = fig.add_subplot(111)
ax.plot(T, r, 'b-', T, R, 'r-', T, r_geo, 'g-')
ax.set_yscale('log')
ax.annotate('Approx. sea level', xy=(Planet.T_day*1.3,(Planet.R)/1000), xytext=(Planet.T_day*1.3, Planet.R/1000))
ax.annotate('Geostat. orbit', xy=(Planet.T_day*1.3, r_geo[0]), xytext=(Planet.T_day*1.3, r_geo[0]))
ax.set_xlabel('Rotational period (hrs)')
ax.set_ylabel('Orbital radius (km), logarithmic')
ax.set_title('Orbital charts for ' + Planet.N, horizontalalignment='center', verticalalignment='top')


ax2 = ax.twiny()
ax2.plot(v,r,'k-')
ax2.set_xlabel('Linear speed (ms-1)')

show()

数据呈现得很好,但我有一个问题,那就是图形标题与第二个x轴上的轴标签重叠,以至于几乎无法辨认(我想在这里发布一个图片示例,但我还没有足够高的代表)。

我想知道是否有一种简单的方法可以直接将标题向上移动几十个像素,这样图表看起来就更漂亮了。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-04-28 18:14:27

我不确定这是否是matplotlib后续版本中的新特性,但至少在1.3.1版本中,这是很简单的:

plt.title(figure_title, y=1.08)

这也适用于plt.suptitle(),但不适用于plt.xlabel()等。

票数 282
EN

Stack Overflow用户

发布于 2012-10-06 01:28:12

忘记使用plt.title,直接使用plt.text放置文本。下面是一个过于夸张的例子:

import pylab as plt

fig = plt.figure(figsize=(5,10))

figure_title = "Normal title"
ax1  = plt.subplot(1,2,1)

plt.title(figure_title, fontsize = 20)
plt.plot([1,2,3],[1,4,9])

figure_title = "Raised title"
ax2  = plt.subplot(1,2,2)

plt.text(0.5, 1.08, figure_title,
         horizontalalignment='center',
         fontsize=20,
         transform = ax2.transAxes)
plt.plot([1,2,3],[1,4,9])

plt.show()

票数 36
EN

Stack Overflow用户

发布于 2017-09-29 14:53:18

ax.set_title('My Title\n', fontsize="15", color="red")
plt.imshow(myfile, origin="upper")

如果您将'\n'放在标题字符串之后,则绘图将绘制在标题的正下方。这也可能是一个快速的解决方案。

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

https://stackoverflow.com/questions/12750355

复制
相关文章

相似问题

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