Python 使用字符串时,如何使用matplotlib更改x轴间隔?
我用这种方式绘制了一个数据框“roads”(带点的图形):Python 使用字符串时,如何使用matplotlib更改x轴间隔?,python,string,matplotlib,axis,intervals,Python,String,Matplotlib,Axis,Intervals,我用这种方式绘制了一个数据框“roads”(带点的图形): ax=roads.plot(x='Link\u no',y='Road\u quality\u index',style='o') x轴是字符串形式的连接编号(这些是路段编号)。现在,python自动删除这些字符串的som(10个字符串中的9个),以保持可读性。但是,我想显示更少的x轴点,大约20个点中只有1个 在网上,大多数人都提到使用plt.yticks。但是,我相信,这只有在使用int或float时才可能实现 有人能帮我们吗?您可
ax=roads.plot(x='Link\u no',y='Road\u quality\u index',style='o')
x轴是字符串形式的连接编号(这些是路段编号)。现在,python自动删除这些字符串的som(10个字符串中的9个),以保持可读性。但是,我想显示更少的x轴点,大约20个点中只有1个
在网上,大多数人都提到使用plt.yticks。但是,我相信,这只有在使用int或float时才可能实现
有人能帮我们吗?您可以获取当前的刻度,重新采样,然后将稀疏列表设置为新的刻度。下面是一个示例,我通过检查mod(index(a),20)==0进行采样,这对于每20个标签中的1个标签是真的
# current x labels
current_ticks = ax.get_xticklabels()
# resampling every other label, change mod(20) to sample less
custom_ticks = [a.get_text() for a in current_ticks if current_ticks.index(a)%20==0]
# set as new labels
ax.set_xticks(custom_ticks)
ax.set_xticklabels(custom_ticks)
您可以获取当前的刻度,对其重新采样,并将稀疏列表设置为新的刻度。下面是一个示例,我通过检查mod(index(a),20)==0进行采样,这对于每20个标签中的1个标签是真的
# current x labels
current_ticks = ax.get_xticklabels()
# resampling every other label, change mod(20) to sample less
custom_ticks = [a.get_text() for a in current_ticks if current_ticks.index(a)%20==0]
# set as new labels
ax.set_xticks(custom_ticks)
ax.set_xticklabels(custom_ticks)
在内部,分类记号编号为
0,1,2,3代码>。因此plt.yticks(范围(0,100,10)
将跳过10个刻度中的9个。在内部,分类刻度编号为0,1,2,3,
。因此plt.yticks(范围(0,100,10)
将跳过10个刻度中的9个。