簡體   English   中英

如何使用 pandas 從 excel 工作表在同一圖形上 plot 多個數據幀?

[英]How can I plot multiple dataframes on the same figure from an excel sheet using pandas?

我正在嘗試 plot 多個 y 值(力)和 x 值(位移)在同一個圖中。 當所有圖的 x 值都是恆定的但隨着它的變化而變化時,我通常會發現它很容易,我還沒有找到解決它的方法。 拜托,我需要一些幫助來解決這個問題。

我已將我正在嘗試的數據圖片附加到 plot。 這三個樣本具有不同的 x 值和 y 值。

https://imgur.com/gallery/ckYAJVO

解決方案

讓我們假設您有三個數據框: df0df1df2 此外,讓我們假設在每個 dataframe 中有兩列: xy 如果我們列出這些數據幀dfs = [df0, df1, df2] ,那么您可以在同一個 plot 上 plot 所有三個數據幀,如下所示。

這里的解決方案分為兩部分:

  • 制作虛擬數據(僅在復制一些虛擬數據時需要)。
  • 繪制數據框(您將需要使用此代碼)。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

%matplotlib inline
%config InlineBackend.figure_format = 'svg' # 'svg', 'retina'
plt.style.use('seaborn-white')

# Make Dummy Data
N = [100, 125, 150]
P = [[3, 2.2], [5, 3.7], [2, 4]]
dfs = list()
for n, p in zip(N, P):
    x = np.arange(n)
    y = p[0]*x**p[1] + np.average(p)
    df = pd.DataFrame({'x': x, 'y': y})
    dfs.append(df.copy())

# Make Plots
#dfs = [df1, df2, df3]
for i,df in enumerate(dfs):
    plt.plot(df['x'], df['y'], 
             linestyle='--', 
             alpha=0.8, 
             label='df{}'.format(i))

plt.legend(loc='best')
plt.show()

Output
在此處輸入圖像描述

暫無
暫無

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

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