日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

我可以使用seaborn在x軸上繪制帶日期時(shí)間的線性回歸嗎?

 印度阿三17 2019-06-23

我的DataFrame對(duì)象看起來像

            amount
date    
2014-01-06  1
2014-01-07  1
2014-01-08  4
2014-01-09  1
2014-01-14  1

我想要一種沿著x軸的時(shí)間散點(diǎn)圖,以及y上的數(shù)量,用數(shù)據(jù)線來引導(dǎo)觀察者的眼睛.如果我使用panadas plot df.plot(style =“o”)那就不太對(duì)了,因?yàn)榫€路不在那里.我想要像here這樣的例子.

解決方法:

由于Seaborn遇到日期問題,我將創(chuàng)建一個(gè)解決方案.
首先,我將Date列作為索引:

# Make dataframe
df = pd.DataFrame({'amount' : [1,
                               1,
                               4,
                               1,
                               1]},
                  index = ['2014-01-06',
                           '2014-01-07',
                           '2014-01-08',
                           '2014-01-09',
                           '2014-01-14'])

其次,將索引轉(zhuǎn)換為pd.DatetimeIndex:

# Make index pd.DatetimeIndex
df.index = pd.DatetimeIndex(df.index)

并用它替換原件:

# Make new index
idx = pd.date_range(df.index.min(), df.index.max())

第三,使用新索引(idx)重新索引:

# Replace original index with idx
df = df.reindex(index = idx)

這將生成一個(gè)新的數(shù)據(jù)框,其中包含您沒有數(shù)據(jù)的日期的NaN值:

df edit

第四,由于Seaborn對(duì)日期和回歸線不起作用,我將創(chuàng)建一個(gè)行計(jì)數(shù)列,我們可以將其用作x軸:

# Insert row count
df.insert(df.shape[1],
          'row_count',
          df.index.value_counts().sort_index().cumsum())

第五,我們現(xiàn)在應(yīng)該能夠使用’row_count’作為我們的x變量和’amount’作為y變量來繪制回歸線:

# Plot regression using Seaborn
fig = sns.regplot(data = df, x = 'row_count', y = 'amount')

第六,如果您希望日期沿x軸而不是row_count,您可以將x-tick標(biāo)簽設(shè)置為索引:

# Change x-ticks to dates
labels = [item.get_text() for item in fig.get_xticklabels()]

# Set labels for 1:10 because labels has 11 elements (0 is the left edge, 11 is the right
# edge) but our data only has 9 elements
labels[1:10] = df.index.date

# Set x-tick labels
fig.set_xticklabels(labels)

# Rotate the labels so you can read them
plt.xticks(rotation = 45)

# Change x-axis title
plt.xlabel('date')

plt.show();

plot edit 2

希望這可以幫助!

來源:https://www./content-4-262551.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多