matplotlib 刻度标签位置

zfciruhq  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(160)

我想绘制一条ROC曲线,但两个轴上都出现了刻度标签0.0,我通过直接设置标签来删除一个刻度标签:

pl.gca().set_yticks([0.2, 0.4, 0.6, 0.8, 1.0])
pl.gca().set_xticks([0.0, 0.2, 0.4, 0.6, 0.8, 1.0])

如何使x轴的刻度标签“0.0”与y轴对齐?标签应移动到y轴的左边框,即它与y轴中的其他刻度标签在相同的垂直位置开始。

yhxst69z

yhxst69z1#

我想你想修剪一下x轴:

#!/usr/bin/env python3

import matplotlib
from matplotlib import pyplot as plt
from matplotlib.ticker import MaxNLocator

data = range(5)

fig = plt.figure()
ax = fig.add_subplot(111)

ax.plot(data,data)

ax.xaxis.set_major_locator(MaxNLocator(5, prune='lower'))
ax.yaxis.set_major_locator(MaxNLocator(4))

fig.savefig("1.png")

编辑

悲伤但真实:matplotlib不适用于交叉轴2D图。如果您确定两个轴的零都在左下角,我建议手动将其放置在那里:

#!/usr/bin/env python3

import matplotlib
from matplotlib import pyplot as plt
from matplotlib.ticker import MaxNLocator

data = range(5)

fig = plt.figure()
ax = fig.add_subplot(111)

ax.plot(data,data)

ax.xaxis.set_major_locator(MaxNLocator(5, prune='lower'))
ax.yaxis.set_major_locator(MaxNLocator(4, prune='lower'))

fig.tight_layout()

ax.text(-0.01, -0.02,
        "0",
        horizontalalignment = 'center',
        verticalalignment = 'center',
        transform = ax.transAxes)

fig.savefig("1.png")

这里可以手动调整零位。
就我个人而言,我根据情况修剪x或y轴,并对此感到满意。

相关问题