Python matplotlib-如何将次要网格线的数量设置为6而不是4?

Python matplotlib-如何将次要网格线的数量设置为6而不是4?,python,matplotlib,Python,Matplotlib,我有一张图表,显示了x轴上的周数;我怎样才能有6条中间次要网格线来参考一周中的几天 默认情况下,它似乎有4个小行,但我如何增加它 假设每周从周一开始,是否可以在次要行上标注“T”、“W”、“T”、“F”、“S”、“S” from matplotlib import pyplot import numpy as np # x-axis values weeks = np.arange(0,8) # y-axis values cm = np.flip(np.arange(94,102)

我有一张图表,显示了x轴上的周数;我怎样才能有6条中间次要网格线来参考一周中的几天

默认情况下,它似乎有4个小行,但我如何增加它

假设每周从周一开始,是否可以在次要行上标注“T”、“W”、“T”、“F”、“S”、“S”

from matplotlib import pyplot
import numpy as np
 
# x-axis values 
weeks = np.arange(0,8)
 
# y-axis values 
cm = np.flip(np.arange(94,102))


pyplot.minorticks_on()

pyplot.grid(which='major', linestyle='-', linewidth='1', color='red')
pyplot.ylabel("cm")
pyplot.xlabel("weeks")

pyplot.plot(weeks, cm, 'go') 

pyplot.grid(True, 'both')
 
pyplot.show() 

您可以使用
MultipleLocator
1/7的倍数定位刻度。以及一个格式化程序,它根据使用的7的分数设置正确的字母

从matplotlib导入pyplot作为plt
从matplotlib.ticker导入MultipleLocator
将numpy作为np导入
周=np.arange(0,8)
cm=np.flip(np.arange(94102))
图,ax=plt.子批次()
ax.绘图(周,厘米,开始)
ax.grid(其中,='major',linestyle='-',linewidth='1',color='red')
ax.set_ylabel(“cm”)
ax.设置标签(“周”)
ax.minorticks_on()
ax.xaxis.set_minor_定位器(多路传送器(1/7))
ax.xaxis.set_minor_格式化程序(lambda x,pos:'MTWTFSS'[int(round(x*7))%7])
ax.勾选参数(轴='x',其中='minor',标签大小=5)
ax.grid(True,其中class='tware')
plt.show()

太棒了!确实如此;非常感谢!