matplotlib - Python Matplot Y 轴负到正标签范围

标签 matplotlib label deviation

我正在尝试以 -20 到 + 20 的序列创建 y 轴标签,增量为 5 个整数。我在下面用我的绘图 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 轴,如下图所示:

figure from my program that needs new axis labels (negative numbers)

我需要在图中列出 y 轴标签:-20、-15、-10、-5、0、5、10、15、20,但我尚未在网上找到解决方案。在此感谢您的帮助!

最佳答案

您使用的 abs 始终返回正数。因此,您不会看到负刻度标签。此外,您不需要列表理解,也不需要将 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)

enter image description here

关于matplotlib - Python Matplot Y 轴负到正标签范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62353367/

相关文章:

python - 停止打开窗口的 matplotlib 图(未调用 plt.show())

python - 如何在 OpenCV 中读取 .tif 图像

python - Matplotlib 中的 PdfPages 将同一图形保存两次

cruisecontrol.net - 从程序集版本更新 CCNET 上次构建标签

python - 当移动物体偏离路径特定幅度时如何发出警告?

python - 当设置 rlim 时,极坐标条形图上的条形被切断

label - 如何使用 spss 语法在输出中显示分类标签的数值

grid - amchart 在网格之间添加标签

standards - 面板数据中的方差公式是什么?

C# 为什么定时器频率非常低?