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

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

找到圖形的峰值和底部并標記它們

找到圖形的峰值和底部并標記它們

一只名叫tom的貓 2021-06-04 17:49:35
  df1      Date           Topic  Return      1/1/2010        A,B     -0.308648967      1/2/2010        C,D     -0.465862046      1/3/2010        E        0.374052392      1/4/2010        F        0.520312204      1/5/2010        G        0.503889198      1/6/2010        H       -1.730646788      1/7/2010        L,M,N    1.756295613      1/8/2010        K        -0.598990239      ......      1/30/2010       z         2,124355 Plot= df1.plot(x='Date', y='Return')我怎樣才能找到這個圖的最高點和最低點,并用相應的主題標記這些特殊點?
查看完整描述

2 回答

?
慕森王

TA貢獻1777條經驗 獲得超3個贊

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt


# Take an example data

data = {"Date":["date{i}".format(i=i) for i in range(10)], "Topic":["topic{i}".format(i=i) for i in range(10)], "Return":[1,2,3,2,1,2,4,7,1,3]}

df = pd.DataFrame.from_dict(data)


dates = np.array(df["Date"].tolist())

returns = np.array(df["Return"].tolist())


# Calculate the minimas and the maximas

minimas = (np.diff(np.sign(np.diff(returns))) > 0).nonzero()[0] + 1 

maximas = (np.diff(np.sign(np.diff(returns))) < 0).nonzero()[0] + 1


# Plot the entire data first

plt.plot(dates, returns)

# Then mark the maximas and the minimas

for minima in minimas:

    plt.plot(df.iloc[minima]["Date"], df.iloc[minima]["Return"], marker="o", label=str(df.iloc[minima]["Topic"]))

for maxima in maximas:

    plt.plot(df.iloc[maxima]["Date"], df.iloc[maxima]["Return"], marker="o", label=str(df.iloc[maxima]["Topic"]))


plt.legend()

plt.show()

示例數據框:


   Date   Topic  Return

0  date0  topic0       1

1  date1  topic1       2

2  date2  topic2       3

3  date3  topic3       2

4  date4  topic4       1

5  date5  topic5       2

6  date6  topic6       4

7  date7  topic7       7

8  date8  topic8       1

9  date9  topic9       3

繪制它產生: 

http://img1.sycdn.imooc.com//60bf38690001e3d911120824.jpg

查看完整回答
反對 回復 2021-06-08
  • 2 回答
  • 0 關注
  • 142 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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