是否可以使X轴的次刻度线位于Axes
之下,而主刻度线则位于上方?
使用以下代码,我可以在同一侧绘制次要和主要报价,但我想将0
和5
报价设置在图表上方,而次要报价则留在下面。
from matplotlib import figure as mpfig
from matplotlib.backends import backend_agg as mpback
fig = mpfig.Figure()
mpback.FigureCanvas(fig)
ax = fig.add_subplot(111)
x = list(range(10))
y = list(range(10))
ax.set_xticks(list(range(0, 11, 5)))
ax.set_xticks(list(range(0, 11, 1)), minor=True)
ax.plot(x, y)
fig.savefig("picture.png")
此代码产生以下图片:
我知道Axes.tick_params
,我希望在那里找到这样的选择,但没有找到任何选择。
我也知道Axes.tick_top
和Axes.tick_bottom
,但是它们将次要和主要刻度线都移到了同一侧。
我想避免使用Axes.twinx
的任何技巧,因为它将添加一个新的Axes
对象,这会使绘图更重。
答案 0 :(得分:2)
Axes.tick_params
应该可以解决这个问题。
ax.tick_params(axis='x',which='minor',top=False,bottom=True)
ax.tick_params(axis='x',which='major',top=True,bottom=False)
尝试时,这对我有用:
from matplotlib import figure as mpfig
from matplotlib.backends import backend_agg as mpback
fig = mpfig.Figure()
mpback.FigureCanvas(fig)
ax = fig.add_subplot(111)
x = list(range(10))
y = list(range(10))
ax.tick_params(axis='x',which='minor',top=False,bottom=True)
ax.tick_params(axis='x',which='major',top=True,bottom=False)
ax.set_xticks(list(range(0, 11, 5)))
ax.set_xticks(list(range(0, 11, 1)), minor=True)
ax.plot(x, y)
fig.savefig("picture.png")