Matplotlib: 刻度标签位置

3

我想绘制一个ROC曲线,我使用了这个代码:http://scikit-learn.org/stable/auto_examples/plot_roc.html。但是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])

enter image description here

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


1
我不明白你的意思。你只是想要这个吗: pl.gca().set_yticks([0.0,0.2, 0.4, 0.6, 0.8, 1.0]) pl.gca().set_xticks([0.2, 0.4, 0.6, 0.8, 1.0]) - yoopoo
1个回答

4

我认为您想要修剪 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 不适用于带有交叉坐标轴的二维图表。如果您确定两个轴的零点位于左下角,则建议手动放置它们:

#!/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轴,这样更加方便。


是的,那是另一种方式,可以修剪一个刻度标签。但是如何将y轴上的第一个刻度标签(0)移动到与x轴上的刻度标签(0.8, ...)相同的高度?如何将0移动到两个轴的原点? - user3563297

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接