bli*_*lib 2 python matplotlib gridlines
我有一个图表,显示沿 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()
Run Code Online (Sandbox Code Playgroud)
您可以使用 aMultipleLocator
将刻度定位在 的倍数处1/7
。还有一个格式化程序,根据使用的 7 的分数设置正确的字母。
from matplotlib import pyplot as plt
from matplotlib.ticker import MultipleLocator
import numpy as np
weeks = np.arange(0, 8)
cm = np.flip(np.arange(94, 102))
fig, ax = plt.subplots()
ax.plot(weeks, cm, 'go')
ax.grid(which='major', linestyle='-', linewidth='1', color='red')
ax.set_ylabel("cm")
ax.set_xlabel("weeks")
ax.minorticks_on()
ax.xaxis.set_minor_locator(MultipleLocator(1 / 7))
ax.xaxis.set_minor_formatter(lambda x, pos: 'MTWTFSS'[int(round(x * 7)) % 7])
ax.tick_params(axis='x', which='minor', labelsize=5)
ax.grid(True, which='both')
plt.show()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2196 次 |
最近记录: |