Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用字符串时,如何使用matplotlib更改x轴间隔?_Python_String_Matplotlib_Axis_Intervals - Fatal编程技术网

Python 使用字符串时,如何使用matplotlib更改x轴间隔?

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时才可能实现 有人能帮我们吗?您可

我用这种方式绘制了一个数据框“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时才可能实现


有人能帮我们吗?

您可以获取当前的刻度,重新采样,然后将稀疏列表设置为新的刻度。下面是一个示例,我通过检查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个。