如何让Python散点图Y轴从大值到小值且无需设置特定ylim()?
反转Matplotlib散点图Y轴(无需手动指定ylim)
如果用Matplotlib绘制散点图,想要让Y轴从数据最大值起始、最小值收尾,完全不用手动设置ylim()的具体数值,用以下两种通用方法就能实现:
直接调用反转方法
绘制完散点图后,调用坐标轴对象的invert_yaxis()即可。Matplotlib会先自动根据你的数据计算出最合适的Y轴范围,再直接反转这个范围,全程不需要手动输入任何数值,适配任意Y数据范围。示例代码:
import matplotlib.pyplot as plt import numpy as np # 生成任意范围的示例数据 x = np.random.rand(50) y = np.random.randint(10, 200, size=50) fig, ax = plt.subplots() ax.scatter(x, y) # 一键反转Y轴 ax.invert_yaxis() plt.show()手动获取并反转自动计算的范围
如果你需要在反转前做额外处理,可以先获取Matplotlib自动计算的Y轴上下限,反转后再重新设置,效果和上面一致:示例代码:
import matplotlib.pyplot as plt import numpy as np x = np.random.rand(50) y = np.random.normal(100, 30, size=50) fig, ax = plt.subplots() ax.scatter(x, y) # 获取自动计算的Y轴范围 y_min, y_max = ax.get_ylim() # 反转后设置Y轴范围 ax.set_ylim(y_max, y_min) plt.show()
这两种方法都完全依赖数据自动生成的范围,不管你的Y数据是整数、浮点数,还是范围差异极大,代码都能直接适配,通用性拉满。
内容的提问来源于stack exchange,提问作者Λήδα Λιόγκα
相关产品推荐
相关产品推荐

