Matplotlib Python Matplot Y轴负到正标签范围

Matplotlib Python Matplot Y轴负到正标签范围,matplotlib,label,deviation,Matplotlib,Label,Deviation,我正在尝试以-20到+20的顺序创建y轴标签,以5个整数为增量。我已经在下面用我的绘图轴=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,我还没有在线找到解决方案。谢谢你的帮助 您使用的是始终

我正在尝试以-20到+20的顺序创建y轴标签,以5个整数为增量。我已经在下面用我的绘图轴=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
。因此,您不会看到负面标签。此外,您不需要理解列表,也不需要将
范围
转换为
列表
。您也可以只使用一个变量,而不用调用
range()
两次

只需卸下
abs
并直接传递
范围即可。事实上,对于您当前的示例,您甚至不需要设置y标签。只要设置刻度就足够了

例如:

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()
绘图:

@Sheldore当然有!我只是想提供另一种可能性:)