我正在尝试在图中旋转x刻度标签。我创建了一个通用函数,绘制了我想要绘制的样式。我做了以下事情:
labels=ax2.get_xticklabels()
for i,label in labels:
labels[i]=label.get_text()
ax2.set_xticklabels(labels, rotation=30)
这样产生的图没有x_tick标签,所以我挖得更深: 我让它在循环时打印标签,它们是空的文本实例。然而,这就是它变得奇怪的地方:当我得到标签(labels = ax2.get_xticklabels()),并让plot函数返回文本实例列表(返回标签)时,列表中的Text实例确实有正确的字符串,上面的代码按预期生成字符串列表。当我尝试在函数内部编辑它时,我不确定为什么文本实例是空的,但是当我有函数返回标签未编辑时更正。有什么建议吗?
答案 0 :(得分:5)
我会根据您问题中的标题回答,因为我不理解其后的解释。
在绘制图形之前,不会填充刻度标签。
plt.plot([1, 2])
ax = plt.gca()
labels = ax.get_xticklabels()
for label in labels:
print(label)
输出:
Text(0,0,'')
Text(0,0,'')
Text(0,0,'')
Text(0,0,'')
Text(0,0,'')
Text(0,0,'')
Text(0,0,'')
Text(0,0,'')
当您致电plt.draw()
时,会填充刻度标签:
plt.plot([1, 2])
ax = plt.gca()
plt.draw()
labels = ax.get_xticklabels()
for label in labels:
print(label)
输出:
Text(0,0,'')
Text(0,0,'0.0')
Text(0.2,0,'0.2')
Text(0.4,0,'0.4')
Text(0.6,0,'0.6')
Text(0.8,0,'0.8')
Text(1,0,'1.0')
Text(0,0,'')
答案 1 :(得分:0)
我不确定这是否是您想要的解决方案。我有一个DataFrame
,其x-ticks都是不同案例的名称。我不得不这样做。
ax.set_xticks(np.arange(len(my_df.index)))
ax.set_xticklabels([case for case in my_df.columns], rotation=30)
答案 2 :(得分:-1)
ids V1 V2 V3
1 1001 P1 P2
2 1002 P1
3 1003 P2 P3 P4
4 1004 P1