Python Matplotlib:在特定y轴截距处设置x轴刻度标签,但在y=0处设置x轴和刻度
作为标题,我有多个子图,希望x轴刻度标签显示在y=-1(我所有的子图都有y型标记(-1.1到1.1),而x轴线和刻度显示在y=0。我当前的编辑代码如下:Python Matplotlib:在特定y轴截距处设置x轴刻度标签,但在y=0处设置x轴和刻度,python,matplotlib,Python,Matplotlib,作为标题,我有多个子图,希望x轴刻度标签显示在y=-1(我所有的子图都有y型标记(-1.1到1.1),而x轴线和刻度显示在y=0。我当前的编辑代码如下: while x < 10: plt.add_subplot(10,1,x).yaxis.tick_right() plt.subplot(10,1,x).spines['bottom'].set_position('zero') plt.subplot(10,1,x).spines['bottom'].set_c
while x < 10:
plt.add_subplot(10,1,x).yaxis.tick_right()
plt.subplot(10,1,x).spines['bottom'].set_position('zero')
plt.subplot(10,1,x).spines['bottom'].set_color('xkcd:light grey')
plt.subplot(10,1,x).set_facecolor('xkcd:dark grey')
plt.tick_params(axis='x', direction='out', labelbottom='on', color='xkcd:light grey', labelcolor='xkcd:light grey')
plt.plot()
plt.ylim(-1.1,1.1)
x+=1
plt.show()
当x<10时:
plt.add_子图(10,1,x).yaxis.tick_right()
plt.子批次(10,1,x).脊椎['bottom']。设置位置('zero'))
plt.子图(10,1,x).刺['bottom'].设置颜色('xkcd:浅灰色')
plt.子图(10,1,x).设置面颜色('xkcd:深灰色')
plt.勾选参数(轴='x',方向='out',标签底部='on',颜色='xkcd:浅灰色',标签颜色='xkcd:浅灰色')
plt.plot()
plt.ylim(-1.1,1.1)
x+=1
plt.show()
子批次的当前示例如下所示:
通常可通过以下方式设置,并指定“数据”:
plt.subplot(10,1,x).spines['bottom'].set_position(('data', -1))
“数据””:将脊椎放置在指定的数据坐标处
↳ 通常可通过并指定“数据””进行设置:
plt.subplot(10,1,x).spines['bottom'].set_position(('data', -1))
“数据””:将脊椎放置在指定的数据坐标处
↳ 在数据坐标中设置标签的位置是很不寻常的。但这仍然是可能的。类似于您可以使用变换来移动标签。在这里,我们将首先将标签移动1个数据单位,然后应用通常的变换
import matplotlib.pyplot as plt
import numpy as np; np.random.seed(42)
import matplotlib.transforms as mtrans
x = np.linspace(2013.6,2018.4)
y = np.cumsum(np.random.randn(50))/12.+0.3
ax = plt.subplot(111)
ax.yaxis.tick_right()
ax.spines['bottom'].set_position('zero')
ax.spines['bottom'].set_color('xkcd:light grey')
ax.set_facecolor('xkcd:dark grey')
ax.tick_params(axis='x', direction='out', labelbottom=True, pad=0,
color='xkcd:light grey', labelcolor='xkcd:light grey')
ax.plot(x,y)
ax.set_ylim(-1.1,1.1)
trans = mtrans.Affine2D().translate(0,-1.)
for t in ax.get_xticklabels():
t.set_transform(trans + t.get_transform())
plt.tight_layout()
plt.show()
在数据坐标中设置标签的位置是很不寻常的。但这仍然是可能的。类似于您可以使用变换来移动标签。在这里,我们将首先将它们移动1个数据单位,然后应用通常的变换
import matplotlib.pyplot as plt
import numpy as np; np.random.seed(42)
import matplotlib.transforms as mtrans
x = np.linspace(2013.6,2018.4)
y = np.cumsum(np.random.randn(50))/12.+0.3
ax = plt.subplot(111)
ax.yaxis.tick_right()
ax.spines['bottom'].set_position('zero')
ax.spines['bottom'].set_color('xkcd:light grey')
ax.set_facecolor('xkcd:dark grey')
ax.tick_params(axis='x', direction='out', labelbottom=True, pad=0,
color='xkcd:light grey', labelcolor='xkcd:light grey')
ax.plot(x,y)
ax.set_ylim(-1.1,1.1)
trans = mtrans.Affine2D().translate(0,-1.)
for t in ax.get_xticklabels():
t.set_transform(trans + t.get_transform())
plt.tight_layout()
plt.show()
您可以使用
轴。勾选参数('x',pad=100)
在x轴标签上方创建填充,将其向下推至y=-1
。调整填充值,直到找到所需位置。若要获得更好的答案,请发布包含预期输出的a。您可以使用轴。勾选参数('x',pad=100)
若要在x轴标签上方创建填充,请将其向下推至y=-1
。调整填充值,直到找到所需位置。若要获得更好的答案,请发布包含预期输出的a。这将使整个轴(包括刻度)下降至-1。是否有办法只移动刻度标签(即本例中的日期)下降到y=-1?@Singapore123:当然有办法,尽管我对你的提问感到困惑。也许可以发布一个示例屏幕截图,说明你希望它看起来如何。目前,当我尝试你的代码时,我只得到一个灰色条,因此你的更多代码显示数据可能也会有所帮助。这会带来整个轴(包括勾号)降到-1.有没有办法只带上勾号标签(即本例中的日期)归结到y=-1?@Singapore123:当然有办法,尽管我对你的提问感到困惑。也许可以发布一个示例屏幕截图,说明你希望它看起来如何。目前,当我尝试你的代码时,我只会得到一个灰色条,所以你的更多代码显示数据可能也会有所帮助。