簡體   English   中英

使用 Matplotlib 在兩個子圖中傳播數據

[英]Spreading data across two subplots with Matplotlib

我正在嘗試創建兩個子圖,顯示來自 dataframe 的大量數據。 這只是一個 x 軸,但會導致多列,因此它無法在一個 plot 上正確顯示。 因此,我試圖讓一個子圖顯示前 25 列,第二個子圖顯示接下來的 25 列。 我可以創建一個 plot 很好,我可以很好地創建兩個相同的圖,但不能做我想要實現的。

我嘗試了許多不同的方法,例如:

f, (ax1, ax2) = plt.subplots(1, 2, sharey=True)
plt.subplot(2, 1, 1)
if score <= 100000:
    ax1.plot(score)
else:
    ax2.plot(score)

以上可能是完全錯誤的,但是當我嘗試這個時,我得到以下錯誤:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

我覺得應該有一個簡單的方法來做到這一點,但我就是想不通。

您可以簡單地對pandas ' 'DataFrame'-object 進行切片(請記住,索引的類型必須為 integer => 轉換):

df[0:int(len(df)/2)]

所以你得到:

from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
# create dummy data
df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=['Col 1','Col 2','Col 4','Col 5'])
# open figure
fig, axs = plt.subplots(1, 2, sharey=True)
#plot 1st half [0:50]
axs[0].plot( df[0:int(len(df)/2)] )
#plot 2nd half [50:100]
axs[1].plot( df[int(len(df)/2): ] )

在此處輸入圖像描述

暫無
暫無

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

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