如何在matplotlib中强制零(0)到轴的中心

Gav*_*n S 5 python matplotlib pandas

我正在尝试绘制百分比变化数据,并希望绘制它,使 y 轴关于 0 对称。即 0 位于轴的中心。

import matplotlib.pyplot as plt
import pandas as pd
data = pd.DataFrame([1,2,3,4,3,6,7,8], columns=['Data'])
data['PctChange'] = data['Data'].pct_change()
data['PctChange'].plot()
Run Code Online (Sandbox Code Playgroud)

默认 y 轴上的百分比变化

这与如何在图形中间绘制轴不同. 这里的目标不是移动 x 轴,而是更改 y 轴的限制,使零位于中心。特别是以与数据相关的更改的编程方式。

Gav*_*n S 10

绘制数据后找到最小和最大轴值之间的最大绝对值。然后将轴的最小和最大限制设置为该值的正负(分别)。

import matplotlib.pyplot as plt
import pandas as pd
data = pd.DataFrame([1,2,3,4,3,6,7,8], columns=['Data'])
data['PctChange'] = data['Data'].pct_change()
ax = data['PctChange'].plot()

yabs_max = abs(max(ax.get_ylim(), key=abs))
ax.set_ylim(ymin=-yabs_max, ymax=yabs_max)
Run Code Online (Sandbox Code Playgroud)

关于对称 y 轴的百分比变化