2

我正在尝试以 -20 到 + 20 的序列以 5 个整数增量创建 y 轴标签。我已经用我的绘图轴 = ax2 在下面尝试了这个:

ax2.set_yticks(list(range(-20, 25, 5)))
ax2.set_yticklabels([abs(y) for y in list(range(-20, 25, 5))])

我得到从 20 到 20 的 y 轴,如下图所示:

我的程序中需要新轴标签的图(负数)

我需要 y 轴标签在图中列出为:-20、-15、-10、-5、0、5、10、15、20,我还没有在网上找到解决方案。感谢您在这里的任何帮助!

4

2 回答 2

2

您正在使用abs它总是返回一个正数。因此,您看不到负刻度标签。此外,您不需要列表理解,也不需要转换rangelist. 您也可以只使用一个变量而不是调用range()两次。

只需删除absrange直接通过。事实上,对于您当前的示例,您甚至不需要设置 y-ticklabels。只需设置刻度就足够了。

例如:

fig, ax2 = plt.subplots()

ytics = range(-20, 25, 5)
ax2.set_yticks(ytics)
ax2.set_yticklabels(ytics); # Remove abs() (Also redundant line in your case)

在此处输入图像描述

于 2020-06-12T22:34:00.453 回答
2

这对你有用吗:

ax.set_yticks(np.linspace(-20, 20, 10)) 

最小的例子:

import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots(1, 1)
ax.set_yticks(np.arange(-20, 25, 5))
plt.show()

情节: 在此处输入图像描述

于 2020-06-12T22:34:37.347 回答