我有这个数据框:
df = pd.DataFrame({"X": np.random.randint(50,53,size=100),
"Y": np.random.randint(200,300,size=100),
"Z": np.random.randint(400,800,size=100),
"Cat": np.random.choice(["Buy","Don't buy"], size=100)})
因为我有很多列(除了一列之外都是数字),我做了这个循环来做一个特定的情节:
for i in ["X", "Y", "Z"]:
data = df.groupby("Cat")
ax = data[i].plot(kind="kde")
#ymin, ymax = ax.get_ylim() # Here is the error
plt.vlines(x=data.mean()[data.mean().index == "Buy"][i],ymin=0, ymax=0.5, linestyles="dotted")
plt.vlines(x=data.mean()[data.mean().index == "Don't buy"][i],ymin=0, ymax=0.5, linestyles="dotted")
plt.show()
我需要获得每个密度图和分类组的最大 y 轴值,以便绘制每个图和每个分类组的平均 vlines。我试图从这里找到解决方案的解决方法。但它给了我错误'Series' object has no attribute 'get_ylim'。
有什么建议么?
编辑:
具体来说,每条密度曲线的 ymax 应该相同,因为每个图都有两条密度曲线。如果它们的颜色不同(例如与密度曲线的颜色相同)那就太棒了,但并非绝对必要。不同地块的 ymax 可能不同。
慕村9548890
相关分类