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

标签 python pandas matplotlib

我正在尝试绘制百分比变化数据,并希望绘制它以使 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()

percent change on default y axis

这与 How to draw axis in the middle of the figure? 不同.这里的目标不是移动 x 轴,而是更改 y 轴的限制,使零位于中心。特别是以与数据相关的更改的编程方式。

最佳答案

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

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)

percent change about symmetric y axis

关于python - 如何在matplotlib中强制零(0)到轴的中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61050767/

相关文章:

python - matplotlib 与点颜色对应的 basemap 图例

python - 如何使用 numpy nomkl 在 anaconda 中创建环境?

python - 自动将maplotlib参数保存到mplstyles文件中

python - csv 到 txt python 转换脚本留下 0 字节的文件

python - 验证数据的性能比 keras 中的训练数据差

python - Pandas - value_counts() 中消失的值

python - 删除数据框侧括号中的内容

Python:需要帮助拆分二进制代码的输入,没有空格

Python 请求代码使 Javascript 被禁用或不受 Web 浏览器支持

python - Pandas DatetimeIndex 获取下一个日期(不包括周末)