亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python - 在 GROUPED 密度圖中概括平均線的 y 軸限制

python - 在 GROUPED 密度圖中概括平均線的 y 軸限制

ibeautiful 2023-06-06 16:17:33
我有這個數據框: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 可能不同。
查看完整描述

1 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

我需要獲得每個密度圖和分類組的最大 y 軸值


for i in ["X", "Y", "Z"]:

    data = df.groupby("Cat")

    ax = data[i].plot(kind="kde")

    ...

ax是帶有“購買”和“不購買”軸的 Pandas 系列。


> ax

Cat

Buy          AxesSubplot(0.125,0.11;0.775x0.77)

Don't buy    AxesSubplot(0.125,0.11;0.775x0.77)

Name: X, dtype: object

您可以獲得最大 y 限制


> max(ax['Buy'].get_ylim())

0.5447082895597888

> max(ax["Don't buy"].get_ylim())

0.5447082895597888

或者得到限制。


> import matplotlib as mpl

> ax.apply(mpl.axes.Axes.get_ylim)

Cat

Buy          (-0.026485399247623134, 0.556196332564079)

Don't buy    (-0.026485399247623134, 0.556196332564079)

Name: Z, dtype: object


查看完整回答
反對 回復 2023-06-06
  • 1 回答
  • 0 關注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號