如何移动第二个x轴的位置?

我正在尝试创建一个带有辅助 x 轴的图表,但我希望辅助 x 轴的标签和刻度位于第一个 x 轴下方。我目前只找到了将其移动到底部的方法,而不是移动到确切位置的方法。我附上了我想要实现的目标的图片。


y = [3, 5, 2, 8, 7]

x = [[10, 11, 12, 13, 14], [36, 39.6, 43.2, 46.8, 50.4]]

labels = ['m/s', 'km/hr']


fig,ax = plt.subplots()

ax.plot(x[0], y)

ax.set_xlabel("Velocity m/s")

ax.set_ylabel("Time /mins")


ax2=ax.twiny()

ax2.plot(x[1], y)

ax2.set_xlabel("Velocity km/hr")

plt.show()

http://img1.mukewang.com/64ad13440001953b06470588.jpg

哆啦的时光机
浏览 114回答 1
1回答

喵喔喔

回答首先,您必须包含所需的库:import matplotlib.pyplot as pltfrom mpl_toolkits.axes_grid1 import host_subplotimport mpl_toolkits.axisartist as AA然后你可以生成第一个轴ax = host_subplot(111, axes_class = AA.Axes, figure = fig)然后通过生成次轴ax2=ax.twiny()此时,您需要为次轴腾出一些空间,因此您应该使用以下命令抬高绘图区域的底部plt.subplots_adjust(bottom = 0.2)最后将次轴定位在第一个轴下方offset = -40new_fixed_axis = ax2.get_grid_helper().new_fixed_axisax2.axis['bottom'] = new_fixed_axis(loc = 'bottom',                                    axes = ax2,                                    offset = (0, offset))ax2.axis['bottom'].toggle(all = True)完整代码import matplotlib.pyplot as pltfrom mpl_toolkits.axes_grid1 import host_subplotimport mpl_toolkits.axisartist as AAy = [3, 5, 2, 8, 7]x = [[10, 11, 12, 13, 14], [36, 39.6, 43.2, 46.8, 50.4]]labels = ['m/s', 'km/hr']fig = plt.figure()# generate the first axisax = host_subplot(111, axes_class = AA.Axes, figure = fig)ax.plot(x[0], y)ax.set_xlabel("Velocity m/s")ax.set_ylabel("Time /mins")ax2=ax.twiny()# make space for the secondary axisplt.subplots_adjust(bottom = 0.2)# set position ax2 axisoffset = -40new_fixed_axis = ax2.get_grid_helper().new_fixed_axisax2.axis['bottom'] = new_fixed_axis(loc = 'bottom',                                    axes = ax2,                                    offset = (0, offset))ax2.axis['bottom'].toggle(all = True)ax2.plot(x[1], y)ax2.set_xlabel("Velocity km/hr")plt.show()结果
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python