Python matplotlib在两个级别中有多个重叠的XLabel

Python matplotlib在两个级别中有多个重叠的XLabel,python,matplotlib,Python,Matplotlib,我试图找到一个解决方案,解决我在情节中有多个xlabel的情况,我不能放弃任何问题在于,xlabel彼此运行,导致绘图不可读(如子绘图(1,1)) 我想知道我是否能以某种方式使每一个标签都达到另一个高度(如所附示例所示) 我的想法: 两种方法 向记号/标签添加正旋转: 为每个偶数x标签添加两条新线。代码是从列表中提取并修改的,列表理解就是这样做的(同时也进行了修改,使标签有点大,就像你的一样) 将numpy导入为np 将matplotlib.pyplot作为plt导入 #在xticks参数

我试图找到一个解决方案,解决我在情节中有多个xlabel的情况,我不能放弃任何
问题在于,xlabel彼此运行,导致绘图不可读(如子绘图
(1,1)

我想知道我是否能以某种方式使每一个标签都达到另一个高度(如所附示例所示)

我的想法:
两种方法

  • 向记号/标签添加正旋转:

  • 为每个偶数x标签添加两条新线。代码是从列表中提取并修改的,列表理解就是这样做的(同时也进行了修改,使标签有点大,就像你的一样)

将numpy导入为np
将matplotlib.pyplot作为plt导入
#在xticks参数中调用此函数
def transform_xlabels(xlabels):
返回('\n\n%s'%label if i%2 else label for i,label in enumerate(xlabels))
N=5
menMeans=(20,35,30,35,27)
女性平均数=(25,32,34,20,25)
menStd=(2,3,4,1,2)
女性TD=(3,5,2,3,3)
ind=np.arange(N)#组的x个位置
宽度=0.35#钢筋宽度:也可以是len(x)序列
p1=plt.bar(内径,平均值,宽度,YER=menStd)
p2=plt.bar(印度、女性平均值、宽度、,
底部=男性平均数,yerr=女性td)
plt.ylabel(“分数”)
plt.title(按组划分的分数)
测试='G1 abc\ndaido misco iso'
xlabels=('G1%s'%test','G2%s'%test','G3%s'%test','G4%s'%test','G5%s'%test)
#函数被调用
plt.xticks(ind,transform_xlabels(xlabels))
plt.yticks(np.arange(0,81,10))
plt.图例((p1[0],p2[0]),(‘男性’,‘女性’)
plt.show()
输出


是的,这是可能的。两个选项:(a)使用主刻度和次刻度以及标签,更改其中一个的偏移量。(b) 为ticklabel文本设置单独的变换,每秒钟都应得到一个偏移变换。