gpt4 book ai didi

Python - matplotlib 轴限制了大概的股票代码位置

转载 作者:太空宇宙 更新时间:2023-11-04 06:14:36 24 4
gpt4 key购买 nike

当未指定轴限制时,matplotlib 选择默认值作为 nice,整数低于和高于要绘制的列表中的最小值和最大值。

有时我的数据中有离群值,我不希望在选择轴时包含它们。我可以检测到异常值,但我不想真正删除它们,只是让它们超出绘图区域。我尝试将轴设置为列表中的最小值和最大值,不包括离群值,但这意味着这些值恰好位于轴上,并且绘图的边界不与股票点对齐。

有没有办法指定坐标轴限制应该在一定范围内,但让matplotlib选择一个合适的点?

例如,以下代码生成了一个漂亮的图,其中 y 轴限制自动设置为 (0.140,0.165):

from matplotlib import pyplot as plt
plt.plot([0.144490353418, 0.142921640661, 0.144511781706, 0.143587888773, 0.146009766101, 0.147241517391, 0.147224266382, 0.151530932135, 0.158778411784, 0.160337332636])
plt.show()

Plot from the first code example.

在数据中引入异常值并手动设置限制后,y 轴限制设置为略低于 0.145 和略高于 0.160 - 几乎没有那么整洁。

from matplotlib import pyplot as plt
plt.plot([0.144490353418, 0.142921640661, 0.144511781706, 0.143587888773, 500000, 0.146009766101, 0.147241517391, 0.147224266382, 0.151530932135, 0.158778411784, 0.160337332636])
plt.ylim(0.142921640661, 0.160337332636)
plt.show()

Plot from the second code example.

有什么方法可以告诉 matplotlib 在设置限制时忽略离群值,或者将轴设置为“低于 0.142921640661”和“高于 0.160337332636”,但让它决定一个合适的位置?我不能简单地将数字四舍五入,因为我所有的数据集都出现在不同的量级上。

最佳答案

你可以让你的data成为masked array :

from matplotlib import pyplot as plt
import numpy as np

data = [0.144490353418, 0.142921640661, 0.144511781706, 0.143587888773, 500000, 0.146009766101, 0.147241517391, 0.147224266382, 0.151530932135, 0.158778411784, 0.160337332636]
data = np.ma.array(data, mask=False)
data.mask = data>0.16
plt.plot(data)
plt.show()

enter image description here

关于Python - matplotlib 轴限制了大概的股票代码位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16543733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com