簡體   English   中英

給定數據框,iPython是否可以生成此類圖表?

[英]Is there a way for iPython to generate these kinds of charts given a dataframe?

這張照片

請忽略背景圖片。 前景圖是我有興趣使用pandas或numpy或scipy(或iPython中的任何東西)顯示的內容。

我有一個數據框,其中每一行代表一天的溫度。 這是一些行的示例:

            100   200   300   400   500   600 ...... 2300
10/3/2013  53*C  57*C  48*C  49*C  54*C  54*C        55*C
10/4/2013  45*C  47*C  48*C  49*C  50*C  52*C        57*C

有沒有一種方法可以獲取圖表,該圖表使用第一列作為“零”來表示每小時之間的變化

假設您的數據框名為df ,那么快速而骯臟的事情可能會帶您到達那里。

import matplotlib.pyplot as plt
plt.imshow(df.T.diff().fillna(0.0).T.drop(0, axis=1).values)

由於我無法輕松地使用您確切的列標簽構建示例版本,因此可能需要進行一些額外的修改,以消除diff中包含的所有索引列並隨轉置一起移動。 但這在隨機數據示例上為我制作了一個簡單的熱圖樣圖。

然后,您可以創建一個matplotlib圖形或軸對象,並為x和y軸標簽指定所需的內容。

您可以一次為每一行繪制一條帶有偏移的線:

nrows, ncols = 12, 30

# make up some fake data:
d = np.random.rand(nrows, ncols)
d *= np.sin(2*np.pi*np.arange(ncols)*4/ncols)
d *= np.exp(-0.5*(np.arange(nrows)-nrows/2)**2/(nrows/4)**2)[:,None]

#this is all you need, if you already have the data:
for i, r in enumerate(d):
    plt.fill_between(np.arange(ncols), r+(nrows-i)/2., lw=2, facecolor='white')

重疊線

如果您不需要填充顏色來阻塞上一行,則可以一次完成所有操作:

d += np.arange(nrows)[:, None]
plt.plot(d.T)

未填滿

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM