如何使用pandas在excel工作表的同一个图形上绘制多个数据帧?

2024-10-03 15:30:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着在同一个图形上绘制多个y值(力)和x值(位移),当x值对于所有的绘图都是常数时,我通常会觉得很容易,但是随着x值的变化,我还没有找到一种方法来计算它。拜托,我想得到一些帮助,以最好的方式来处理这个问题

我已经附上了一张我试图绘制的数据的图片。这三个样本具有不同的x值和y值

https://imgur.com/gallery/ckYAJVO


Tags: 数据方法httpscom图形绘图方式常数
1条回答
网友
1楼 · 发布于 2024-10-03 15:30:44

解决方案

假设您有三个数据帧:df0df1df2。另外,假设在每个数据帧中有两列:xy。如果我们列出这些数据帧,dfs = [df0, df1, df2],那么您可以将它们全部绘制在同一个图上,如下所示

这里的解决方案分为两部分:

  • 生成虚拟数据(仅在复制某些虚拟数据时才需要)
  • 绘制数据帧(您将需要使用此代码)
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()

输出
enter image description here

相关问题 更多 >