Python Matplot Y 轴负到正标签范围
Python Matplot Y Axis Negative to Positive Label Range
我正在尝试按 -20 到 + 20 的顺序创建 y 轴标签,增量为 5 个整数。我在下面用我的 plot axis = 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,但我尚未在网上找到解决方案。在此感谢您的帮助!
您使用的 abs
总是 returns 正数。因此,您看不到负标记。此外,您不需要列表理解,也不需要将 range
转换为 list
。您也可以只使用变量而不是调用 range()
两次。
去掉abs
直接传range
即可。事实上,对于您当前的示例,您甚至不需要设置 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)
这对你有用吗:
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()
情节:
我正在尝试按 -20 到 + 20 的顺序创建 y 轴标签,增量为 5 个整数。我在下面用我的 plot axis = 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,但我尚未在网上找到解决方案。在此感谢您的帮助!
您使用的 abs
总是 returns 正数。因此,您看不到负标记。此外,您不需要列表理解,也不需要将 range
转换为 list
。您也可以只使用变量而不是调用 range()
两次。
去掉abs
直接传range
即可。事实上,对于您当前的示例,您甚至不需要设置 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)
这对你有用吗:
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()
情节: