第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何繪制對(duì)應(yīng)于最高值的直線?

如何繪制對(duì)應(yīng)于最高值的直線?

達(dá)令說(shuō) 2023-03-16 16:38:08
我有以下數(shù)據(jù):Date01/27/2020    5503/03/2020    4402/25/2020    3903/11/2020    3901/28/2020    3902/05/2020    3803/17/2020    3703/16/2020    3703/19/2020    3703/14/2020    3503/09/2020    3503/26/2020    3303/06/2020    3301/29/2020    3303/23/2020    2703/15/2020    2702/26/2020    2703/27/2020    2603/02/2020    2502/28/2020    2503/24/2020    2403/04/2020    2401/21/2020    2303/01/2020    2102/27/2020    2101/22/2020    2102/18/2020    1801/31/2020    1803/22/2020    1801/26/2020    1803/31/2020    1802/24/2020    1701/20/2020    1601/23/2020    1603/12/2020    1603/21/2020    1502/29/2020    1403/28/2020    1302/19/2020    1303/08/2020    1302/04/2020    1302/12/2020    1202/01/2020    1202/07/2020    1203/30/2020    1202/20/2020    1103/07/2020    1103/29/2020    1102/09/2020    1102/06/2020    11使用分組。在右邊,我有按日期排列的值的頻率。情節(jié)是產(chǎn)生于fig, ax = plt.subplots(figsize=(15,7))df.groupby(['Date']).count()['NN'].plot(ax=ax)我想有對(duì)應(yīng)于第一個(gè)最高值的垂直直線,即01/27/2020    5503/03/2020    4402/25/2020    3903/11/2020    3901/28/2020    39我怎么能在我的情節(jié)中添加這些線?
查看完整描述

1 回答

?
大話西游666

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊

關(guān)于垂直線,.axvline方法應(yīng)該可以解決問(wèn)題。如果您嘗試使用一組字符串作為索引來(lái)繪制 pandas DataFrame/Series,pandas 會(huì)在后臺(tái)執(zhí)行一些花哨的步法。

可能會(huì)弄亂 xticks 和各種類型,但最簡(jiǎn)單的方法是將您的列轉(zhuǎn)換為datetime64.

首先,讓我們制作一些絨毛數(shù)據(jù):

import random

import pandas as pd

from string import ascii_lowercase


# Make some fluff

dates = [f'01/{random.randint(1,28)}/1901' for _ in range(100)]

fluff = [ascii_lowercase[random.randint(1,26):random.randint(1,26)]

         for _ in range(100)]


# Pack into a DataFrame

df = pd.DataFrame({'Date': dates, 'NN': fluff})


# Aggregate

counted = df.groupby('Date').count()

快速瀏覽一下:


>>> counted

               NN

Date            

01/10/1901      2

01/11/1901      6

01/12/1901      2

...             ...

您可以用它代替您擁有的任何數(shù)據(jù)。如果在執(zhí)行 groupby 之前轉(zhuǎn)換列,這可能是最簡(jiǎn)單的,因此:


df['Date'] = pd.to_datetime(df['Date'], format='%m/%d/%Y')

agg_df = df.groupby(['Date']).count()


fig, ax = plt.subplots(figsize=(8,6))

agg_df['NN'].plot(ax=ax)

http://img1.sycdn.imooc.com//6412d5af0001984b04780386.jpg

劇情和上面類似。請(qǐng)注意,我使用 8 x 6 的尺寸,以便figsize該圖更適合 StackOverflow 頁(yè)面。運(yùn)行代碼時(shí)將其改回 15 x 7。

我使用了%m/%d/%Y格式,因?yàn)檫@似乎是您正在使用的格式。有關(guān)日期格式的更多信息,請(qǐng)參見(jiàn)此處:官方日期時(shí)間文檔

最后,直接使用 a 獲取垂直線datetime

import datetime
ax.axvline(datetime.datetime(1901,01,10), color='k')

http://img1.sycdn.imooc.com//6412d5bc000122e204780391.jpg

如果您想獲得最高值的垂直直線,請(qǐng)對(duì)聚合的 DataFrame 進(jìn)行排序,然后在 for 循環(huán)中重?fù)羲?/p>

for d in agg_df.sort_values('NN',ascending=False).index[:5]:
    ax.axvline(d, color='k')


查看完整回答
反對(duì) 回復(fù) 2023-03-16
  • 1 回答
  • 0 關(guān)注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)