我试图用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轴上的轴标签重叠,因此很难辨认(我想在这里发布一个图片示例,但我还没有足够高的重复率)。
我想知道是否有一种简单的方法可以直接将标题向上移动几十个像素,这样图表看起来更漂亮。
忘记使用
plt.title
,直接用plt.text
放置文本。下面给出了一个过分夸张的例子:如果将
'\n'
放在标题字符串的正后方,则在标题的正下方绘制绘图。这可能也是一个快速的解决方案。我不确定它是否是matplotlib的新版本中的一个新功能,但至少对于1.3.1来说,这只是:
这也适用于
plt.suptitle()
,但还不适用于plt.xlabel()
等相关问题 更多 >
编程相关推荐