子批次中的自定义xtick标签

2024-09-27 19:22:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试自定义子批次中的xtick标签。我只想让xtick标签位于最后一个绘图的底部x轴(第四个,第一个是最上面的)。我的尝试:

import matplotlib.pyplot as plt
plt.subplots(4, 1)
plt.subplots_adjust(hspace=0)
plt.subplot(411)
plt.xlabel('x (h)')
plt.ylabel(' y1 (nT)')
plt.minorticks_on()
plt.rcParams['xtick.bottom'] = True
plt.rcParams['xtick.labelbottom'] = False
plt.rcParams['xtick.top'] = True
plt.rcParams['xtick.labeltop'] = False
plt.plot(x,y1)
plt.subplot(412)
plt.xlabel('x (h)')
plt.ylabel(' y2 (nT)')
plt.minorticks_on()
plt.rcParams['xtick.bottom'] = True
plt.rcParams['xtick.labelbottom'] = False
plt.rcParams['xtick.top'] = True
plt.rcParams['xtick.labeltop'] = False
plt.plot(x,y2)
plt.subplot(413)
plt.xlabel('x (h)')
plt.ylabel(' y3 (nT)')
plt.minorticks_on()
plt.rcParams['xtick.bottom'] = True
plt.rcParams['xtick.labelbottom'] = False
plt.rcParams['xtick.top'] = True
plt.rcParams['xtick.labeltop'] = False
plt.plot(x,y3)
plt.subplot(414)
plt.xlabel('x (h)')
plt.ylabel(' y4 (nT)')
plt.minorticks_on()
plt.rcParams['xtick.bottom'] = True
plt.rcParams['xtick.labelbottom'] = True # I thought it will enable xtick labels only on the bottom x-axis of the last plot
plt.rcParams['xtick.top'] = True
plt.rcParams['xtick.labeltop'] = False
plt.plot(x,y4)
plt.show()

x、y1、y2、y3和y4是任意数组。任何帮助都将不胜感激。你知道吗


Tags: falsetrueplotontoppltbottomnt
1条回答
网友
1楼 · 发布于 2024-09-27 19:22:21

你要找的是^{} keyword argument。如果设置为True,图形的每个子图都将具有相同的属性。此外,勾号标签仅位于底部子批次。你知道吗

tight_layout命令只是在图中很好地排列子图的一种简单方法。你知道吗

import matplotlib.pyplot as plt
import numpy as np


x = np.random.randint(0, 100, 10)
y = np.random.randint(0, 100, (4, 10))

fig, axs = plt.subplots(4, 1, sharex=True, sharey=True, figsize=(10, 6))

for i, (ax, data) in enumerate(zip(axs, y)):
    ax.plot(x, data)
    ax.set_ylabel('y{}(nT)'.format(i+1))

ax.set_xlabel('x(h)')
fig.tight_layout() 

相关问题 更多 >

    热门问题